gpt4 book ai didi

javascript - 如何删除 YUI 委托(delegate)事件?

转载 作者:行者123 更新时间:2023-11-30 05:35:52 24 4
gpt4 key购买 nike

我正在尝试为允许用户注入(inject) javascript 的平台创建脚本。他们使用 YUI,特别是 Y.one('body).delegate('click',...) 将事件附加到按钮。我想拦截此按钮,但我不知道如何停止、阻止、删除或以其他方式阻止事件处理程序触发。

注意:我无法直接访问“Y.delegate()”返回的处理程序

到目前为止我已经尝试过

Y.detachAll('click');
Y.unsubscribeAll('click');
Y.one('body').detachAll('click');
Y.one('body').unsubscribeAll('click');
Y.one('.the-delegated-class').detachAll('click');
Y.one('.the-delegated-class').unsubscribeAll('click');

一切都无济于事。事实上,我取得的唯一成功是完全删除并替换了主体 HTML,这显然包含了所有事件处理程序,而不是我想删除的那个。

有什么见解吗?

最佳答案

事实证明,我的一种尝试是正确的方法,但我的用法是错误的。我(不知不觉地)试图在事件被附加到第一位之前分离它。

在以下情况下表示:Y.one('body).delegate('click',...)

这有效:Y.one('body').detach('click')

尽管理想情况下,您会直接在委托(delegate)调用返回的 EventHandle 上调用 detach。

关于javascript - 如何删除 YUI 委托(delegate)事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23858493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com