【发布时间】:2014-05-26 12:15:27
【问题描述】:
我正在尝试为允许用户注入 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,它显然会带上所有的事件处理程序,而不仅仅是我想要删除的那个。
有什么见解吗?
【问题讨论】:
-
那个平台绝不是squarespace吧? :P
-
@Cawas 是的,不知道我为什么这么含糊...:-/
-
那么相关,我正在使用
destroy(true):stackoverflow.com/a/9405055/274502 -
这对我来说似乎有点矫枉过正,有潜在的副作用,尽管可能不足以胜过它对你有用的事实......yuilibrary.com/yui/docs/api/classes/Node.html#method_destroy
标签: javascript yui