[英]jQuery - .off() cannot remove the event listener
我有一个功能:
const foo = () => {
// blablabla
};
我首先添加一个事件监听器:
$('body').on('click', foo);
然后我尝试删除它但失败了:
$('body').off('click', foo);
它只能与所有其他事件一起删除:
$('body').off('click');
更新:
我尝试了 addEventListener 和 removeEventListener,仍然无法正常工作。
更明确:
condition ? $('body').on('click', foo) : $('body').off('click', foo);
if 条件重要吗?
如果要删除事件处理程序,则应使用event.namespace 。
此外,将事件处理程序附加到document
而不是body
const foo = () => { console.log('blablabla foo') }; const foo2 = () => { console.log('blablabla foo2') }; $(document).on('click', foo); $(document).on('click.foo2', foo2); $(document).off('click.foo2', foo2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.