![](/img/trans.png)
[英]How can I remove an event listener from an element without cloning or access to the event listener creation?
[英]How can I remove a JS event listener without access to the context in which it was created?
我的公司使用Confluence作为其内部Wiki,这很好,除了编辑器绑定了一些键盘快捷键之外,这使我无所适从。 特别是,当我希望它遵守“ kill line”的系统默认行为时,它将^ K用作“插入链接”。
我已经找到了插入侦听器的相关代码:
$("#markupTextarea").select(function () {
AJS.Editor.storeTextareaBits(true);
}).keyup(function (e) {
AJS.Editor.contentChangeHandler();
if (e.ctrlKey) {
if (e.keyCode == 75) {// bind ctrl+k to insert link
return openLinkPopup(e);
}
if (e.keyCode == 77) {// bind ctrl+m to insert image
$("#editor-insert-image").click();
return false;
}
}
}).keydown(function (e) {
// prevent firefox's default behaviour
if (e.ctrlKey && e.keyCode == 75) {
return AJS.stopEvent(e);
}
}).change(function () {
AJS.Editor.contentChangeHandler();
});
对于上下文,似乎他们使用的是TinyMCE的自定义版本。 理想情况下,我希望使用用于这些事件侦听器的Chrome用户脚本,但我什至无法通过在Chrome JS控制台中对它们执行操作来使它们消失。
我尝试过的事情(大多是在其他人的建议下;我并不是一个真正的JS黑客):
$('markupTextarea').unbind('select')
-说Object #<HTMLTextAreaElement> has no method 'unbind'
$('markupTextarea').removeEventListener
不起作用,因为我没有名称来引用这些侦听器
我几乎没有主意。
您的$
不是jQuery。
写jQuery('#markupTextarea').unbind('select')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.