在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
中。
2条答案
按热度按时间hgtggwj01#
设法让它工作与此命令:
document.onkeydown = null;
ewm0tg9j2#
检查是否正确使用了
disconnect
函数(还要检查拼写/语法)。documentation显示:disconnect()接受一个特制的参数作为唯一的参数,而这个参数恰好是dojo. connect的返回值。
......同时您为其提供3个参数,处理程序是最后一个。
顺便说一句,我不太确定Dojo内部发生了什么(尽管它可能实现了多边形填充,所以如果使用Dojo,您不必使用本机函数),但IE的
attachEvent
和detachEvent
接受以“on”为前缀的事件名称,例如onmouseout
、onkeydown
(请参见MSDN article)。另外,注意事件名称的不同。Dojo似乎使用带有
on
前缀的IE语法,而标准DOM实现使用omits it。因此,您可能需要检查是否绑定和解除绑定了同一事件(例如,如果绑定到onkeydown
,则应解除绑定onkeydown
而不是keydown
)。