Javascript 在动态创建的选择更改上触发另一个函数
使用数据表。它使用Javascript动态生成以下selectbox Firebug为上面的选择框显示了这段代码 我试图触发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
$(“#全选”)。使用以下简单函数单击(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(){
。