JavaScript知識點之「事件機制」

2021-08-27 09:53:18 字數 605 閱讀 7612

操作發生時會觸發相應的事件,建立乙個事件物件,該物件包含了各種事件屬性,然後事件以如下順序進行處理:

1. 捕獲階段:事件先傳送到window,然後是document,接著是每乙個目標元素的父元素,直到該目標元素。

2. 定位階段:事件傳送到目標元素。

3. 冒泡階段:事件傳送回每乙個目標元素的父元素,直到window元素。

在xul和html中,事件機制是一致的。

新增事件的兩種方式:

1. 寫在元素的屬性中,如:οnclick=「...」。這種方式只能處理冒泡階段的事件。

2. 使用addeventlistener:這種方式可以處理各個階段的事件。

阻止事件傳遞:

event.stoppropagation();可以用來阻止事件傳遞,由於事件捕獲在冒泡之前,所以如果在事件捕獲階段使用了,那麼就無法在冒泡階段監聽到事件了。

阻止預設事件:

如果沒有其他的事件監聽,那麼在捕獲和冒泡完成後會觸發預設的事件處理,event.preventdefault()可以用來阻止預設事件。

需要注意的是阻止預設事件並不會阻止冒泡,同樣,阻止冒泡也不會阻止預設事件。

阻止事件傳遞和阻止預設事件處理後,無法再解除阻止!

Javascript常見知識點

jquery d ocum ent rea dy 與win dow.onlo ad的區 別1.執行 時間wi ndow onl oad必 須等到頁 麵內包括 的所 有元素加 載完畢後 才能執行 document ready 是dom結構繪製完畢後就執行,不必等到載入完畢。2.編寫個數不同 windo...

javascript知識點彙總

function vartest console.log x 2 function lettest console.log x 1 var arr1 new array a b c 這是乙個預定義的陣列,在建立時初始化 var arr2 a b c 同樣是在建立時初始化,但是這種建立更為簡潔直觀 v...

JavaScript知識點之 delete操作符

delete操作符來刪除乙個隱式宣告的全域性變數,也就是沒有使用var定義的全域性變數.如果delete操作符刪除成功,則被delete的屬性已從所屬的物件上徹底消失,隨後,該物件的原型上可能存在的乙個同名屬性會被繼承.一些物件的屬性不能被delete.ecma 262 規範中把這些屬性標記為 do...