2011-01-19 69 views
0

我有一些jQuery代碼來設置我的頁面上的一些複選框。我也有一張桌子。此表不顯示加載頁面時的所有行,因此您必須使用ajax請求加載剩餘的行。問題在於,ajax加載的行中的複選框不會被設置樣式。我想繼承複選框樣式到已經加載了ajax的複選框。加載jQuery代碼時繼承jQuery代碼

回答

0

一旦新的複選框被加載,你將不得不觸發你的jQuery代碼來設置這些複選框的樣式(只有新的複選框)。沒有看到你的代碼或標記是不可能給你一個直接的答案,但是,例如,假設你的jQuery代碼添加了一個類到複選框(大概作爲它的一部分,而不是全部),否則你只需要使用CSS造型)。然後,你只需有一個代碼,一定要留出這些複選框:

var cbsToStyle = $(":checkbox:not(.foo)"); 

...然後在樣式列表cbsToStyle

(live copy)

HTML(明顯不一樣的你,但表示):

<div id='container'> 
    <label><input type='checkbox'>Original checkbox</label> 
    <br><label><input type='checkbox'>Original checkbox</label> 
    <br><label><input type='checkbox'>Original checkbox</label> 
</div> 

JavaScript的使用jQuery:

jQuery(function($) { 
    var timer = 0, 
     counter = 4; 

    styleCheckboxes(); 
    timer = setInterval(loadCheckboxes, 1000); 

    function loadCheckboxes() { 
    var index; 

    if (--counter < 0) { 
     // Done 
     cancelInterval(timer); 
     timer = 0; 
    } 
    else { 
     // Mimic adding three checkboxes 
     for (index = 0; index < 3; ++index) { 
     $("<br><label><input type='checkbox'>Another checkbox</label>").appendTo('#container'); 
     } 

     // Re-trigger the styling code 
     styleCheckboxes(); 
    } 
    } 

    function styleCheckboxes() { 
    // Get only those we haven't styled before and style them. 
    // Note that the class is used as a marker (you might _also_ 
    // use it to apply some style rules) 
    $(":checkbox:not(.styled)").addClass("styled").css("width", "40px"); 
    } 

});​ 

...其中styleCheckboxes是最相關位。

+0

那很簡單。謝謝! – Emil 2011-01-19 14:09:12