JavaScript事件學(xué)習(xí)小結(jié)(三)js事件對(duì)象
相關(guān)閱讀:
JavaScript事件學(xué)習(xí)小結(jié)(五)js中事件類型之鼠標(biāo)事件
http://www.dbjr.com.cn/article/86259.htm
JavaScript事件學(xué)習(xí)小結(jié)(一)事件流
http://www.dbjr.com.cn/article/86261.htm
javaScript事件學(xué)習(xí)小結(jié)(四)event的公共成員(屬性和方法)
http://www.dbjr.com.cn/article/86262.htm
JavaScript事件學(xué)習(xí)小結(jié)(二)js事件處理程序
http://www.dbjr.com.cn/article/86264.htm
JavaScript事件學(xué)習(xí)小結(jié)(三)js事件對(duì)象
http://www.dbjr.com.cn/article/86266.htm
一、事件對(duì)象
1、認(rèn)識(shí)事件對(duì)象
事件在瀏覽器中是以對(duì)象的形式存在的,即event。觸發(fā)一個(gè)事件,就會(huì)產(chǎn)生一個(gè)事件對(duì)象event,該對(duì)象包含著所有與事件有關(guān)的信息。包括導(dǎo)致事件的元素、事件的類型以及其他與特定事件相關(guān)的信息。
例如:鼠標(biāo)操作產(chǎn)生的event中會(huì)包含鼠標(biāo)位置的信息;鍵盤操作產(chǎn)生的event中會(huì)包含與按下的鍵有關(guān)的信息。
所有瀏覽器都支持event對(duì)象,但支持方式不同,在DOM中event對(duì)象必須作為唯一的參數(shù)傳給事件處理函數(shù),在IE中event是window對(duì)象的一個(gè)屬性。
2、html事件處理程序中event
<input id="btn" type="button" value="click" onclick=" console.log('html事件處理程序'+event.type)"/>
這樣會(huì)創(chuàng)建一個(gè)包含局部變量event的函數(shù)??赏ㄟ^(guò)event直接訪問(wèn)事件對(duì)象。
3、DOM中的事件對(duì)象
DOM0級(jí)和DOM2級(jí)事件處理程序都會(huì)把event作為參數(shù)傳入。
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.onclick=function(event){ console.log("DOM0 & click"); console.log(event.type); //click } btn.addEventListener("click", function (event) { console.log("DOM2 & click"); console.log(event.type); //click },false); </script> </body>
4、IE中的事件對(duì)象
第一種情況: 通過(guò)DOM0級(jí)方法添加事件處理程序時(shí),event對(duì)象作為window對(duì)象的一個(gè)屬性存在。
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.onclick= function () { var event=window.event; console.log(event.type); //click } </script> </body>
第二種情況:通過(guò)attachEvent()添加的事件處理程序,event對(duì)象作為參數(shù)傳入。
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.attachEvent("onclick", function (type) { console.log(event.type); //click }) </script> </body>
但是我有兩個(gè)地方不懂。
1、通過(guò)DOM0級(jí)方法添加的事件處理程序中同樣可以傳入一個(gè)event參數(shù),它的type和window.event.type一樣,但是傳入的event參數(shù)卻和window.event不一樣,為什么?
btn.onclick= function (event) { var event1=window.event; console.log('event1.type='+event1.type); //event1.type=click console.log('event.type='+event.type); //event.type=click console.log('event1==event?'+(event==event1)); //event1==event?false }
2、通過(guò)attachEvent添加的事件處理程序中傳入的event和window.event是不一樣的,為什么?
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.attachEvent("onclick", function (type) { console.log(event.type); //click console.log("event==window.event?"+(event==window.event)); //event==window.event?false }) </script> </body>
以上所述是小編給大家介紹的JavaScript事件學(xué)習(xí)小結(jié)(三)js事件對(duì)象的相關(guān)知識(shí),希望對(duì)大家有所幫助,如果大家想了解更多內(nèi)容敬請(qǐng)關(guān)注腳本之家網(wǎng)站!
相關(guān)文章
JavaScript設(shè)置獲取和設(shè)置屬性的方法
這篇文章主要介紹了JavaScript設(shè)置獲取和設(shè)置屬性的方法,學(xué)會(huì)使用getAttribute、setAttribute的用法,需要的朋友可以參考下2015-03-03JS解決Date對(duì)象在IOS中的“大坑” 以及時(shí)間格式兼容問(wèn)題
這篇文章主要介紹了JS解決Date對(duì)象在IOS中的“大坑” 以及時(shí)間格式兼容問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10學(xué)習(xí)Javascript面向?qū)ο缶幊讨庋b
這篇文章主要幫助大家學(xué)習(xí)Javascript面向?qū)ο缶幊讨庋b,由淺入深的介紹了封裝的概念定義,感興趣的小伙伴們可以參考一下2016-02-02js實(shí)現(xiàn)網(wǎng)頁(yè)多級(jí)級(jí)聯(lián)菜單代碼
這篇文章主要介紹了js實(shí)現(xiàn)網(wǎng)頁(yè)多級(jí)級(jí)聯(lián)菜單代碼,涉及javascript基于數(shù)組動(dòng)態(tài)構(gòu)造多級(jí)級(jí)聯(lián)菜單的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08