3.1. 事件是如何产生的 *
第一种情况,用户对网页做了某些操作,比如,点击了一个按钮,产生点击事件。 第二种情况,用户没有对网页做操作,也可能产生事件,比如浏览器已经将整个页面加载完毕,会产生加载完成事件。当事件产生以后,浏览器会查找产生事件的节点有没有绑订相应的事件处理代码。如果有,则调用该代码来处理。如果没有,会继续向上查找父节点,有没有对应的事件处理代码(事件冒泡)。
3.2. 绑订事件处理代码 **
1) 绑订事件处理代码到html标记乊上
比如: <a id="a1" href="" onclick="f1();">click</a>
2) 绑订事件处理代码到dom节点之上
var obj = document.getElementById('a1'); obj.onclick=f1;
注意:
a. f1不要加"()",加"()"表示立即执行f1这个凼数。
b. 可以使用匿名凼数迚行绑订。
即: obj.onclick=function(){ //代码。 }
c. 绑订事件处理代码到dom节点之上,可以将js代码不html完全分离,方便代码的维护。
d. 如果要给绑订的凼数传参。可以使用匿名凼数来解决。
即: obj.onclick=function(){ f(参数); }
3) 使用浏览器自带的绑订方式(了解)
不同的浏览器,有各自独有的绑订方式,因为丌兼容,所以尽量少用。
Script脚本可以在<body>中写
如果传参数怎么办?使用匿名凼数
【案例3.1】绑订事件处理代码到html标记之上 **
3.3. 事件对象 ***
1) 获得事件对象
IE浏览器: 可以直接使用event获得
firefox: 必须给方法添加一个参数event
一般为了兼容ie,firefox,给方法添加一个参数event
2) 事件对象的作用
a. 获得鼠标点击的坐标
event.clientX event.clientY
b. 获得事件源(产生事件的那个对象)
firefox: event.target获得 IE浏览器: event.srcElement获得
3.4. 事件冒泡 **
1) 什么是事件冒泡?当一个节点产生事件以后,该事件会依次向上传递(先传给父节点,如果父节点还有父节点, 再向上传递)。
2) 如何禁止冒泡"" src="/UploadFiles/2021-04-02/2016072309535117.png">
2) “事件冒泡”现象关闭对话框“你点击了一个链接”,继续弹出对话框“你点击了一个div”
【案例3.4】事件对象 **
<html>
<!--事件对象-->
------------------------------------------------------------------------------------------------------
js是采用事件驱动(event-driven)响应用户操作的。
比如通过鼠标或者按键在浏览器窗口或者网页元素(按钮,文本框...)上执行的操作,我们称之为事件(Event)。
由鼠标或热键引发的一连串程序的动作,称之为事件驱动 (Event-Driver)。
对事件进行处理程序或函数,我们称之为事件处理程序 (Event Handler)。
----------------------------------------------------------------------------------------------------------------------
浏览器兼容处理
<script language="javascript"> <!-- if(window.XMLHttpRequest){ //Mozilla, Safari, IE7,IE8 if(!window.ActiveXObject){ // Mozilla, Safari, alert('Mozilla, Safari'); }else{ alert('IE7 .8'); } }else { alert('IE6'); } //--> </script>
-------------------------------------------------------------------------------待续
一个事件,需要多个方法,可以用,隔开就可以了
<input type="button" value="red" onclick="mychange(this),sayHello()"/>
<body onkeydown="showkey(event)" onload="abc()" onunload="abc2()">
以上这篇js事件驱动机制 浏览器兼容处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
js事件驱动机制
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。