问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js 实现一些跨浏览器的事件方法详解及实例

发布网友 发布时间:2022-04-22 11:51

我来回答

1个回答

热心网友 时间:2023-11-03 19:01

js实现一些跨浏览器的事件方法
  用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象:
var
EventUtil
=
{
on:
function(element,
type,
handler)
{/*
添加事件
*/
if
(element.addEventListener)
{
element.addEventListener(type,
handler,
false);
}
else
if
(element.attachEvent)
{//IE
注意:此时事件处理程序会在全局作用域中运行,因此用attachEvent绑定的事件,此时在事件处理函数里的this
等于window,使用时要注意
element.attachEvent("on"
+
type,
handler);
}
else
{
element["on"
+
type]
=
handler;
}
},
off:
function(element,
type,
handler)
{/*
移除事件
*/
if
(element.removeEventListener)
{
element.removeEventListener(type,
handler,
false);
}
else
if
(element.detachEvent)
{
element.detachEvent("on"
+
type,
handler);
}
else
{
element["on"
+
type]
=
null;
}
},
getEvent:
function(event)
{/*
返回对event对象的引用
*/
return
event
?
event
:
window.event;
},
getTarget:
function(event)
{/*
返回事件的目标
*/
return
event.target
||
event.srcElement;
},
preventDefault:
function(event)
{
/*
取消事件的默认行为
*/
if
(event.preventDefault)
{
event.preventDefault();
}
else
{
event.returnValue
=
false;
}
},
stopPropagation:
function(event)
{/*
阻止事件冒泡
*/
if
(event.stopPropagation)
{
event.stopPropagation();
}
else
{
event.cancelBubble
=
true;
}
},
/*
mouseover
和mouserout
这两个事件都会涉及把鼠标指针从一个元素的边界之内移动到另一个元素的边界之内。*/
getRelatedTarget:
function(event)
{
if
(event.relatedTarget)
{
return
event.relatedTarget;
}
else
if
(event.toElement)
{//IE8
mouserout事件
return
event.toElement;
}
else
if
(event.fromElement)
{//IE8
mouseover事件
return
event.fromElement;
}
else
{
return
null;//其他事件
}
}
};
调用如下:
EventUtil.on(document,
"click",
function(event){//为document元素绑定click事件
event
=
EventUtil.getEvent(event);//获取event事件对象
alert("Screen
coordinates:
"
+
event.screenX
+
","
+
event.screenY);
});
文章参考自《JavaScript高级程序设计第三版》
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 javascript的event该怎么理解? JavaScript中event对象是做什么用的? javascript event对象的具体功能是什么 JS中的event 对象包含哪些东西 event,实例 详解 招聘普通工人去哪个网站? 酒店员工招聘信息怎么写? 工人招聘招聘信息怎么能快速招到人? 明明找工人的人很多,为什么网上还有很多招工信息? 招聘普工上什么网? 招组装饮水机的工人怎么写招聘信息? 工厂招聘工人在哪里招聘信息 上海工人招聘网最新招聘信息可靠吗? 深圳建筑工人招聘信息在哪些平台可以找到? 移动全国接听免费吗 中国移动国内接听全部免费吗? 中国移动套餐资费表? 移动手机办理什么业务可以全国接听免费? 中国移动是不是全国接听免费? 目前国内的手机接听都免费吗? 手机接听是免费的吗? JS 中的 event?event:window.event什么意思?求详解。 javascript面向对象:事件对象event内容总结 jquery事件对象event有哪些属性和方法 如何在js中获取event对象 javascript event javascript 关于event的使用疑问? JS监听写法中event代表什么,是实参吗 JavaScript 中的dispatchEvent是怎么用的? 镞犳硶鏄剧ず椤甸溃锛屽洜涓哄彂鐢熷唴閮ㄦ湇锷″櫒阌欒?銆 javascript:关于js的function参数中带的Event 请简单说明javascript中处理事件的步骤 怎样编写可维护的面向对象JavaScript代码 iphone x锁屏无法上划 当AI碰上教育,这会为孩子带来什么好处? 人工智能与教育有哪些结合点? 人工智能对教育的影响? 人工智能技术在教育中有哪些应用 人工智能对教育的利弊? 金立手机系统进不去,提示恢复出厂设置,但是一直在那个界面 金立手机为什么系统桌面一直没有响应,应该怎么办