jquery - 运行 jquery .each() 后显示 div 不起作用

标签 jquery

我正在尝试使用自定义复选框执行全选脚本,结果编号将会更新,但它会显示计数,因为每个复选框都会提交表单以获得准确的结果编号。但是,当执行选择所有将启动单击事件时,它会显示正在进行的数字,我希望它仅在 .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/

相关文章:

当将可排序元素放入不同的选项卡时,jQuery UI 不会保留可排序元素的原始不透明度

javascript - 是否有任何技术或插件来照亮元素(按钮)?

jquery - 带有 jQ​​uery Mobile 的外部链接和硬件后退按钮

jquery - 如何在不刷新页面的情况下在 flask 中创建链式选择字段?

javascript - 获取一个div之后的所有div并将其属性减一

javascript - 使用 jquery icheck 插件显示隐藏的 div

javascript - 如何获取 iframe 的全部内容?

javascript - 自动显示和隐藏导航栏

javascript - 是否存在 .closest() 的替代方案?

jquery - 当用户单击复选框时禁用某些下拉选择控件