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

时间:2011-05-13 19:42:26

标签: 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();

});

1 个答案:

答案 0 :(得分:1)

这有用吗?

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();

});