2014-03-03 211 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

相關問題