jquery - 我的 jQuery .live() 事件不会 .die()

标签 jquery

使用 jQuery 1.4.3

我有一些内容显示在模式窗口中。当模式打开时,我使用 .live() 将处理程序附加到多个元素。当模式关闭时,我使用 .die() 来分离它们。但是, .die() 似乎不起作用,因为当我重新打开模式时,所有与 .live() 附加的处理程序都会触发两次。如果我关闭并再次重新打开模式,所有处理程序都会触发三次,依此类推。为什么 .die() 不分离点击事件?代码如下:

$('.app-action-edit').live('click', function(){

    [some code]

});

$('.app-action-cancel').live('click', function(){

    [some code]

});

$('.app-action-save').live('click', function(){

    [some code]

});

$('.close-modal').click(function(){

    $('.app-action-edit').die('click');
    $('.app-action-cancel').die('click');
    $('.app-action-save').die('click');

    closeModal();

});

最佳答案

这有效吗?

function f1 {
   [some code]
}

function f2 {
   [some code]
}

function f3 {
   [some code]
}

$('.app-action-edit').live('click',f1);
$('.app-action-cancel').live('click',f2);
$('.app-action-save').live('click', f3);

$('.close-modal').click(function(){

    $('.app-action-edit').die('click',f1);
    $('.app-action-cancel').die('click',f2);
    $('.app-action-save').die('click',f3);

    closeModal();

});

关于jquery - 我的 jQuery .live() 事件不会 .die(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996968/

相关文章:

javascript - 根据与 `<a>` 类名的比较,将类添加到 `<li>` 标签

jquery - 如何使用窗口打印功能打印条码标签?

jquery - Bootstrap 4 全宽下拉菜单

javascript - 如果找到/返回有效的 JSON,则禁用带有 jQ​​uery 单击事件的 href 链接

jquery - 在 <ul> <li> 中的元素符号后插入空格

javascript - 检查某个元素是否在实际页面上

javascript - 如何使用 JavaScript 的值填充下拉列表?

jquery - 如何将 jquery ui 图标设置为每个 css 的背景图像?

javascript - 正则表达式替换某些单词/字符之间的文本或空白

javascript - 使用ajax从xml url获取纬度和经度