2013-03-14 47 views
2

我有一個手風琴內的tabcontainer。如何使用jQuery或JavaScript獲取tabcontainer的高度?

如果我的標籤比我切換到的標籤短,我必須滾動看到新的選項卡上的內容。

我希望能夠「抓住」 TabContainer的高度時,我切換到它和調整包含它的股利。

心想:

function clientActiveTabChanged(sender, args) { 

     alert(sender.height()); 
     }; 

會告訴我的高度,但它不工作。

TabContainer的是:

<ajaxToolkit:TabContainer ID="projTabContainer" OnClientActiveTabChanged="clientActiveTabChanged" runat="server" CssClass="ajax__tab_red-theme"> 

回答

1

我認爲這將幫助您:here

$(myJquerySelector).attr('id'); 

你剛纔改變"id""height"

編輯:你可以得到事件的目標使用:event_target

並挑選ID:

$('TabContainer').change(function(event) { 
    var tabContainerID = $(event.target).attr('id'); 
    alert(tabContainerID); 
}); 

現在你有ID,當您單擊該選項卡上。 有了這個ID,你可以輕鬆找到身高。 我希望這會幫助你。

+0

麻煩的是,我不知道元件的ID,作爲TabContainer的嵌套在一箇中繼器。有沒有一種方法可以使用「發件人」來識別元素? – Ben 2013-03-14 10:33:04

1

sender傳遞給clientActiveTabChanged不是jQuery對象,它是一個一個DOMElement。請嘗試以下操作:

function clientActiveTabChanged(sender, args) { 
    var height = $(sender).height(); 
    console.log('height is: ' + height); 
}; 
1

可以自動調整大小的選項卡容器 - (參考:Auto Resize TabContainer

function clientActiveTabChanged() { 
    //get the tabContainer for later reference 
    var tc = document.getElementById("<%=tabContainer.ClientId%>"); 

    //get the index of the tab you just clicked. 
    var tabIndex = 
     parseInt($find("<%=tabContainer.ClientId%>").get_activeTabIndex(), 10); 

    //set the tabcontainer height to the tab panel height. 
    tc.childNodes[1].style.height = 
     tc.childNodes[1].childNodes[tabIndex].clientHeight; 
}; 

按要求進行上述功能的變化。

相關問題