但它在 Chrome 中有效。
这是我的 UI_EventBus 代码(原型):
(addEventListener方法是一样的,只不过remove换成了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 (原型)中调用它:
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 (原型)中的此方法添加了它:
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:
<script>
....
UI_EventBus.addEventListener(elem,"mousedown", elem.dragMouseDown);
.....
</script>
我花了很多时间试图解决这个问题,但没有成功。如果有人能告诉我出了什么问题,我真的很感激。该解决方案适用于 Chrome。