在Firefox和Chrome中,我的代码运行正常,但在IE中,事件不会被删除。
dojo.connect(d, "onmouseout", function(evt) {
//remove event
});
我试过了:
document.removeEventListener("keydown", keyHandler);
dojo.disonnect(document, "keydown", keyHandler);
document.detachEvent("keydown", keyHandler);
但似乎没有任何效果。 keyHandler
是当鼠标不在存储在变量keydown
中的画布时,我不想在d
上执行的函数。
答案 0 :(得分:1)
管理以使用此命令:document.onkeydown = null;
答案 1 :(得分:0)
检查您是否正确使用disconnect
功能(并检查拼写/语法)。 documentation说:
disconnect()接受一个特制的参数 巧合的是,来自dojo.connect的返回值。
...当你向它提供3个参数时,处理程序是最后一个。
作为旁注,我不太确定Dojo内部会发生什么(尽管它可能实现了polyfill,因此如果你使用Dojo,你不必使用本机函数),但是IE' s attachEvent
和detachEvent
接受前缀为' on'的事件名称,例如onmouseout
,onkeydown
(请参阅MSDN article)。
另外,请注意事件名称的不同之处。 Dojo似乎使用带有on
前缀的IE语法,而标准DOM实现omits it。因此,您可能想要检查您是否绑定并取消绑定同一事件(例如,如果绑定到onkeydown
,那么您应该取消绑定onkeydown
而不是keydown
。)