2014-03-03 210 views
0

使用jQuery UI,我将表格加载到带有制表符的div中。当单击一个选项卡时,我需要更改th和tr元素上的一些CSS属性。从技术上讲,一切正常,但当我点击一个选项卡时,CSS属性只在第th个元素上发生变化。我必须再次单击该选项卡才能对tr元素进行更改。我需要在点击标签时进行两项更改。这里是我的功能:按钮需要多次点击才能进行更改:jQuery

var setHeadingHeight = function() { 

    $('.ui-tabs-nav li a').click(function() { 
    var getHeadingHeight = $("#new-locations-tabs .ui-tabs-panel:visible .right-table th").css("height"); 
    var getRowHeight = $("#new-locations-tabs .ui-tabs-panel:visible .left-table tr").css("height"); 

    $("#new-locations-tabs .ui-tabs-panel:visible .left-table th").css("height", getHeadingHeight); 
    $("#new-locations-tabs .ui-tabs-panel:visible .right-table tr").css("height", getRowHeight); 
    }); 

}; 

编辑:更新代码与tabsload,stil什么都没有。

$("#new-locations-tabs").on("tabsload", function(event, ui) { 
    $('.ui-tabs-nav li a').click(function() { 
     var test = $("#new-locations-tabs .ui-tabs-panel:visible .right-table th").css('height'); 
     var testa = $("#new-locations-tabs .ui-tabs-panel:visible .left-table tr").css('height'); 

     $("#new-locations-tabs .ui-tabs-panel:visible .left-table th").css("height", test); 
     $("#new-locations-tabs .ui-tabs-panel:visible .right-table tr").css("height", testa); 
    }); 
}); 
+0

如何使用此函数'setHeadingHeight()'? – dfsq

回答

0

因为元素尚未显示。高度将不正确。您需要监听要加载的标签

$(".selector").on("tabsload", function(event, ui) { 
    //set height here 
}); 
+0

我使用你的建议更新了代码,但它仍然不起作用。其实,现在没有高度。 – user715564

+0

是否调用tabsload?它是否会返回一个值?你为什么使用'css()'来获取高度而不是'height()'。 – epascarello

+0

好吧,我正在调用包含tabsload的函数。我需要做其他事情来调用tabsload吗?没有使用css()的具体原因。身高()是一个更好的选择? – user715564

相关问题