跨浏览器实现自定义事件处理

本文介绍了一种跨浏览器实现自定义事件处理的方法,通过使用`window.DEvent`对象来监听并响应不同类型的事件,如鼠标移动。通过实例演示了如何在不同浏览器中统一事件处理逻辑,确保代码的兼容性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
/**跨浏览器实现自定义事件处理 *author:Mygirl **/ window.DEvent = { addListener:function(obj,target,act){ if(obj.attachEvent) obj.attachEvent("on" + target , act); if(obj.addEventListener) obj.addEventListener(target , act , false); } removeListener:function(obj,target,act){ if(obj.detachEvent) obj.detachEvent("on"+target,act); if(obj.removeEventListener) obj.removeEventListener(target,act,false); } }
Object.prototype.eventHandler = function(handler){ var b = this ; b = b; return function(c){ if(!c){ c = window.event ; } if(c&&!c.target){ c.target = c.srcElement; } b[handler](c); } }

调用方法如下:

function test(){ var container = document.getElementById("div1"); this.container.onmouseMove = this.eventHandler("onMouseMoveMouse");
CEvent.addListener(this.container, "mousemove", this.eventHandler("onmapmousemove")); }

onMouseMoveMouse.js

Zx.prototype.onmapmousemove = function(evt) { /*var cpointtmp = new ZxPoint(this.container.offsetLeft + evt.clientX - this.mapDiv.offsetLeft, this.container.offsetTop + evt.clientY - this.mapDiv.offsetTop); Theodolite$setPoint(cpointtmp);*/ alert("test"); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值