如何重写它,以便它不会触发复选框

时间:2011-08-23 17:27:23

标签: javascript jquery

我的问题是,在页面加载时会触发一个复选框,因此会产生一个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 个答案:

答案 0 :(得分:2)

删除.trigger('change'),因为它会触发您正在显示的相同功能的事件。

答案 1 :(得分: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);


});