2011-08-23 7 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'); 

나는이 온로드 또는 다른 방법으로 해제 할 수 있습니까?

답변

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); 


}); 
관련 문제