Jquery 关闭所有处理程序

Jquery 关闭所有处理程序,jquery,ajax,Jquery,Ajax,也许我遗漏了一些相关的东西,但如果我在文档准备就绪时使用它 $('a.edit').on("click", displayEditForm); 在一个ajax调用之后 $('a.edit').off(); $('a.edit').on('click', displayEditForm); 它可以工作,我需要取消连接,因为a.click中的一些是动态加载的,而一些不是动态加载的,所以我只想将它们连接一次。问题是,这是目前的工作,但我想使用 $('a.edit').off('click', di

也许我遗漏了一些相关的东西,但如果我在文档准备就绪时使用它

$('a.edit').on("click", displayEditForm);
在一个ajax调用之后

$('a.edit').off();
$('a.edit').on('click', displayEditForm);
它可以工作,我需要取消连接,因为a.click中的一些是动态加载的,而一些不是动态加载的,所以我只想将它们连接一次。问题是,这是目前的工作,但我想使用

$('a.edit').off('click', displayEditForm);
$('a.edit').on('click', displayEditForm);
这是行不通的。虽然没有失败,但其中一些人在单击时调用了两次该函数。如果我使用

$('a.edit').off('click', '**');
知道为什么吗


谢谢

如果您正在动态生成它们,您可以像这样绑定
click()

$(document).on('click' , 'a.edit', function(){})
或者使用
$(document).delegate('a.edit','click',function(){})


就我个人而言,我使用第一种解决方案

如果您动态生成它们,您可以像下面这样绑定
click()

$(document).on('click' , 'a.edit', function(){})
或者使用
$(document).delegate('a.edit','click',function(){})


就我个人而言,我使用第一种解决方案

使用事件委派,忘记了不断地调用
关闭
,然后再调用
打开
。查看文档中的
事件委派部分。如果第一个块起作用了,为什么要使用第二个块呢?试试看,我想使用第二个块,因为第一个块删除了所有的处理程序,目前我只有一个,但将来可能会有更多的需要使用活动授权,忘记不断地关闭
然后再打开
。查看
文档中的
事件委派部分。如果第一个块起作用,为什么要使用第二个块?我想试试,我想使用第二个块,因为第一个块正在删除所有的处理程序,目前我只有一个,但将来可能会有更多的需要。也没有理由提及使用
.delegate()
如果他们使用的版本包含
.on()
(1.7+)。除非他们编写的插件想要向后兼容,但在插件中使用事件委派是不正常的。@AnthonyGrist是的,我知道,事实上我写的第一个解决方案是好的。第二个解决方案是的,它不是一个插件。事实上,我可以在比文档更低的级别上使用它(可能不是很专业的措辞),而且它可以工作。感谢如果他们使用的版本包含
.on()
(1.7+),也没有理由提及使用
.delegate()
。除非他们编写的插件想要向后兼容,但在插件中使用事件委派是不正常的。@AnthonyGrist是的,我知道,事实上,我写的第一个解决方案是好的。第二个解决方案是的,它不是一个插件。事实上,我可以在比文档更低的级别上使用它(可能不是很专业的措辞),而且它可以工作。谢谢