當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript一个重要知识点:事件。
生活随笔
收集整理的這篇文章主要介紹了
javascript一个重要知识点:事件。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
javascript是事件驅動的,那什么是事件?事件就是在javascript中被偵測到DOM元素行為,就稱之為javascript事件。
2、事件的三個階段
事件的三個階段分別為:
1、捕獲階段 2、目標階段3、冒泡階段。
捕獲的概念:就會為了找到目標DOM元素,會從上往下一級一級查找,直到找到目標DOM元素。(window->document->html->body->......->目標DOM元素。
冒泡的概念:目標事件執行后,會從下往上一級一級查找是否有相同事件類型,直到window。
3、事件的綁定方式
1、最簡單綁定方式:btn.οnclick=function(){};
2、W3C標準綁定方式:addEventListener(事件名稱,事件處理程序,useCapture)第三個參數是布爾值,如果是true表示捕獲,如果是false就是冒泡,默認為冒泡。
3、IE中:attachEvent("on" + 事件名稱, 事件處理程序)這個方法不支持:捕獲階段。
4、三種綁定事件this的指向問題。
1、 onclick 事件中的this 就是 當前對象
2、addEventListener 事件處理程序中的this:當前對象
3、attachEvent 事件處理程序中的this : window
5、事件兼容的封裝
var addEvent = function() {//屬于方法檢測,判斷window是否有該方法if(window.addEventListener) {return function f1(target, type, handler) {target.addEventListener(type, handler);};} else if(window.attachEvent) {return function f2(target, type, handler) {target.attachEvent("on" + type, function() {handler.apply(target);//因為this默認指向window,所以通過apply方法來改變this的指向問題//apply使用方法:function.apply(第一個參數,第二個參數)// 第一個參數:表示指向那個對象來調用函數// 第二個參數:是一個數組或者是偽數組的對象 (這個參數是可選的)這個數組中的每一項的值,都將作為被調用函數的參數});};} else {return function f3(target, type, handler) {target["on" + type] = handler;};} }();//封裝事件兼容函數使用到了閉包技術,目的是:當在頁面中多次調用該函數,可以避免重復判斷,提高js執行效率。轉載于:https://www.cnblogs.com/lsy0403/p/5862850.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的javascript一个重要知识点:事件。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: msg: ReferenceError:
- 下一篇: Front End Developer