我正在尝试使用自定义复选框执行全选脚本,结果编号将会更新,但它会显示计数,因为每个复选框都会提交表单以获得准确的结果编号。但是,当执行选择所有将启动单击事件时,它会显示正在进行的数字,我希望它仅在 .each 事件完成后才显示。使用当前代码,它不会运行第二个函数来再次显示 div 这是我的代码,任何帮助都会很棒:
$('.select_all').live('click',function(){
$('#psf_search_results_number').hide();
$('.psf_grp_content input[name="type[]"]').each(function(){
$(this).click();
});
return false;
},function(){
$('#psf_search_results_number').show();
});
最佳答案
首先,.live()
已被弃用,您应该使用 .delegate()
(jQuery 1.7 之前的版本)或 .on()
(适用于 jQuery 1.7+)。
其次,.live()
不接受两个函数参数,因此第二个函数永远不会被调用也就不足为奇了。
如果您只想在 .each()
循环完成后调用第二个函数,您可以使用 .on()
这样做:
$(document.body).on('click','.select_all', function(){
$('#psf_search_results_number').hide();
$('.psf_grp_content input[name="type[]"]').each(function(){
$(this).click();
});
$('#psf_search_results_number').show();
return false;
});
如果我们可以看到您的 HTML,则所有 .select_all
元素共用的父对象会比使用 document.body
更好,但它会像我一样工作“已经”展示了。
关于jquery - 运行 jquery .each() 后显示 div 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508152/