2

我在手风琴中有一个标签容器。

如果我所在的选项卡比我切换到的选项卡短,我必须滚动才能查看新选项卡上的内容。

当我切换到 tabcontainer 并调整包含它的 div 的大小时,我希望能够“捕捉”它的高度。

我想:

 function clientActiveTabChanged(sender, args) {

         alert(sender.height());
        };

会告诉我高度,但它不起作用。

TabContainer 是:

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

3 回答 3

1

sender传递给 的不是clientActiveTabChangedjQuery 对象,而是 DOMElement。尝试以下操作:

function clientActiveTabChanged(sender, args) {
  var height = $(sender).height();
  console.log('height is: ' + height);
};
于 2013-03-14T10:27:47.617 回答
1

我认为这会对你有所帮助:这里

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

你只需"id"要将"height"

编辑:您可以使用以下方法获取事件目标:event_target

并选择 id :

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

现在,当您单击选项卡时,您就有了 id。使用此 id,您可以轻松找到高度。我希望这会对你有所帮助。

于 2013-03-14T10:28:57.140 回答
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;
};

根据需要对上述函数进行更改。

于 2013-03-14T11:58:48.507 回答