我有一种情况,使用jQuery的.on来在动态元素上设置click eventlistener:
$('body').on('click', '#email-me', function() {
call my code....
});
以及稍后在页面中,我必须删除这个监听器 - 但是 - 这是捕获 - 我再也无法访问jQuery(长篇故事),这意味着纯粹的js ......
所以,我不能使用unBind()
,即使我在那里命名我的匿名函数,它仍然不会删除事件监听器。
如何删除绑定,因此该元素不再可点击?
感谢阅读!
答案 0 :(得分:2)
你做不到。 jQuery事件的处理方式与普通的javascript事件不同。
使用jQuery向元素添加事件时,遵循以下步骤:
jQuery.event.dispatch
的事件类型的元素添加特殊事件。因此,删除此事件的唯一方法是获取jQuery绑定触发jQuery.event.dispatch
的特殊事件处理程序,但由于您无法访问jQuery,你无法获得该事件处理程序。 (即使访问jQuery,我认为你不能得到那个处理程序。)
您需要找到一种方法来保留对jQuery的访问权限,或者根本不使用它。