Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动态创建的选择更改上触发另一个函数_Javascript_Jquery_Select_Triggers_Onchange - Fatal编程技术网

Javascript 在动态创建的选择更改上触发另一个函数

Javascript 在动态创建的选择更改上触发另一个函数,javascript,jquery,select,triggers,onchange,Javascript,Jquery,Select,Triggers,Onchange,使用数据表。它使用Javascript动态生成以下selectbox Firebug为上面的选择框显示了这段代码 我试图触发$(“#全选”)。使用以下简单函数单击(function()。但它不起作用。代码中有什么错误 $('select[name=list_length]').change(function(){ if($('#check_all').prop('checked')) $('#check_all').click(); }); $('#ch

使用数据表。它使用Javascript动态生成以下selectbox

Firebug为上面的选择框显示了这段代码

我试图触发
$(“#全选”)。使用以下简单函数单击(function()
。但它不起作用。代码中有什么错误

 $('select[name=list_length]').change(function(){
    if($('#check_all').prop('checked')) 
        $('#check_all').click();    
});

$('#check_all').click( function() {
    if($(this).prop('checked')){
        totalqt=0;
        $('.checkbox').each(function(){
            $(this).prop('checked', true);    
            doIt(this);             
        });
    }else{            
        $('.checkbox').each(function(){
            $(this).prop('checked', false);    
            doIt(this);             
        });
    }
    changeQt();     


} );

我可以在代码中看到一个问题,但由于您没有详细说明失败的原因,我不确定这是否是问题所在

 $('select[name=list_length]').change(function(){
    if($('#check_all').prop('checked')) 
        $('#check_all').click();    
});
在这里,您可以看到复选框是否已选中,然后对其调用单击事件

在click事件处理程序中,再次检查复选框是否选中,并遍历其他复选框。但是,在change事件处理程序中调用的click事件将更改复选框的选中状态,从而获得预期结果

您觉得这个解决方案怎么样

var toggleCheckBoxes = function() {
    if($(this).prop('checked')){
        totalqt=0;
        $('.checkbox').each(function(){
            $(this).prop('checked', true);    
            doIt(this);             
        });
    }else{            
        $('.checkbox').each(function(){
            $(this).prop('checked', false);    
            doIt(this);             
        });
    }
    changeQt();     
}

$('#check_all').click(toggleCheckBoxes);
$('select[name=list_length').change(function(){
  if($('#check_all').is(':checked')){ toggleCheckBoxes(); }
});

像这样更改代码

function checkAllCheckboxes(isChecked) {
    if(isChecked ){
        totalqt=0;
    }
    $('.checkbox').each(function(){
        $(this).prop('checked', isChecked);    
        doIt(this);             
    });
    changeQt();     
}

$('select[name=list_length]').change(function(){
    if($('#check_all').is(':checked')){
        $('#check_all').prop('checked', false);
        checkAllCheckboxes(false);    
    }
});

$('#check_all').click(function(){
    checkAllCheckboxes(this.checked);
});

$(''.'全部检查').trigger('click');
?@j08691 no..相同的结果不应该是if语句
if($('.'全部检查').is(':checked'))…
?你能在$('.'全部检查')上设置断点吗?单击(),看看代码是否到达那里?可能是处理程序甚至没有绑定。你可能需要
live('changed',function(){