繁体   English   中英

jQuery - .off() 无法删除事件侦听器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM