2011-08-23 63 views
0

我的問題是,在頁面加載複選框被觸發,並因此發生ajax調用,這使得我的頁面加載非常緩慢。如何重寫這個,以便它不會觸發複選框

我已經找到觸發這些複選框代碼:

我的jQuery腳本

$('.checkGroup > input[type="checkbox"]').live('change',function(){ 
    $t = $(this); 
    $t.closest('.checkGroup').find('.payload').toggle($t.is(':checked')); 
    if(!$t.is(':checked')){ 
     $t.closest('.checkGroup').find('.payload input[type="checkbox"]') 
      .attr('checked',false); 
    } 
}).trigger('change'); 


$('.checkGroup input[type="checkbox"]').change(function(){ 
    $c = $(this); 
    $c.closest('.checkGroup').find('label > span b') 
      .text($c.closest('.checkGroup') 
         .find('input[type="checkbox"]:checked').length 
      ); 
}).trigger('change'); 

如何禁用此onload事件或任何其他方式?

回答

2

刪除.trigger('change')因爲它觸發了與您顯示的功能相同的事件。

+0

我會批准你的答案 –

0

嘗試觸發change頁面加載後延遲一段時間(如果需要)或者不觸發它。

$(function(){ 

var $checkboxes = $$('.checkGroup > input[type="checkbox"]').live('change',function(){ 
    $t = $(this); 
    $t.closest('.checkGroup').find('.payload').toggle($t.is(':checked')); 
    if(!$t.is(':checked')){ 
     $t.closest('.checkGroup').find('.payload input[type="checkbox"]') 
      .attr('checked',false); 
    } 
}); 

setTimeout(function(){ 
    $checkboxes.change(); 
}, 500); 


}); 
相關問題