RemoveEventListener在Firefox Ver 58中不起作用 [英] RemoveEventListener do not work in Firefox ver 58

查看:71
本文介绍了RemoveEventListener在Firefox Ver 58中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

但它可以在Chrome浏览器中使用.

but it works in Chrome.

这是我来自UI_EventBus(原型)的代码:(addEventListener方法相同,但是remove被add代替.)

Here is my code from UI_EventBus (prototype): (The addEventListener method is the same, but the remove is replaced with add.)

UI_EventBus.removeEventListener = function(obj, argEventType, argEventHandler) {
    var element;;
    var strObj = obj.toString();

    if(strObj.indexOf("HTML") > -1) 
        element = obj;
    else
        element = obj.getElement();


    element.removeEventListener(argEventType, function(event){
        argEventHandler(event,obj);
    });

}

我从UI_Event(原型)中调用它:

I call this from UI_Event (prototype):

closeDragElement:   function(event, obj) {
event = event || window.event;
UI_EventBus.removeEventListener(obj,"mouseup", obj.closeDragElement);
UI_EventBus.removeEventListener(document,"mouseup", obj.closeDragElement);
UI_EventBus.removeEventListener(obj,"mousemove", obj.elementDrag);
}

我已通过UI_Event(原型)中的此方法添加了它:

I've added it from this method in UI_Event (prototype) :

dragMouseDown:   function(event, obj) {
event = event || window.event;

UI_EventBus.removeEventListener(obj,"mousedown", obj.dragMouseDown,[]);
obj.mouseX = event.clientX;
obj.mouseY = event.clientY;
UI_EventBus.addEventListener(obj,"mouseup", obj.closeDragElement);
UI_EventBus.addEventListener(document,"mouseup", obj.closeDragElement);
UI_EventBus.addEventListener(obj,"mousemove", obj.elementDrag);
}

我从UI_EventTest.html调用dragMouseDown -handler:

I call the dragMouseDown -handler from UI_EventTest.html :

<script>
....
UI_EventBus.addEventListener(elem,"mousedown", elem.dragMouseDown);
..... 
</script>


我花了很多时间试图解决这个问题,但无济于事.如果有人能告诉med出了什么问题,我真的很感激.该解决方案可在Chrome中运行.


I've spent a lot of time trying to figure this out, to no avail. I really appreciate if someone could tell med what is wrong. The solution works in Chrome.

推荐答案

removeEventListener 的第二个参数必须是您要删除的函数.

The second argument to removeEventListener must be the function you want to remove.

您已经在其中放置了一个函数表达式,这将创建一个全新的函数.由于它是全新的,因此以前不能将其添加为事件侦听器.

You've put a function expression there, which will create a brand new function. As it is brand new, it can't have been previously added as an event listener.

这篇关于RemoveEventListener在Firefox Ver 58中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆