使用 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/