js學習筆記26 事件冒泡,事件捕獲

2022-03-14 12:42:39 字數 3299 閱讀 9370

事件冒泡 :當乙個元素接收到事件的時候,會把它接收到的所有傳播給它的父級。一直到頂層window。這種現象稱之為事件冒泡機制。出去的事件觸發。

阻止冒泡 :當前要阻止冒泡的事件函式中,呼叫event.cancelbubble = true;

事件捕獲 :ie下是沒有的,在繫結事件中,標準下是有的。進來的事件觸發。

給物件繫結函式的形式

1.給乙個物件繫結乙個事件處理函式:

obj.onclick = fn;

2.給乙個物件的同乙個事件繫結多個不同的函式:

ie :obj.attachevent(事件名稱,事件函式)

1.沒有捕獲

2.事件名稱有on

3.事件函式執行的順序 :標準ie --> 正序,非標準ie ---> 倒序

4.this 指向 window

標準 :obj.addeventlistener(事件名稱,事件函式,是否捕獲)

1.有捕獲

2.事件名稱沒有on

3.事件函式執行的順序 :正序

4.this 指向觸發該事件的物件

取消事件繫結:

第一種事件繫結形式的取消:

obj.onclick = null;

第二種:

ie :obj.detachevent(事件名稱,事件函式)

標準 :obj.removeeventlistener(事件名稱,事件函式,是否捕獲)

是否捕獲:預設是false     false : 冒泡     true : 捕獲

call函式下的乙個方法,call方法的第乙個引數可以改變函式執行過程中的內部this的指向。

call 方法的第二個引數開始就是原來函式的引數列表。

事件捕獲示例**:

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

title

>事件捕獲

title

>

5<

meta

charset

="utf-8"

>

6<

meta

name

="viewport"

content

="width=device-width, initial-scale=1"

>

7<

script

>

8window.onload

=function

()13

function

fn2()

17/*

18document.onclick = fn1;

19document.onclick = fn2; //後面的覆蓋前面的

20*/

2122

//ie寫法

23//

document.attachevent('onclick',fn1);

24//

document.attachevent('onclick',fn2);

2526

//標準寫法

27//

document.addeventlistener('click',fn1,false);

28//

document.addeventlistener('click',fn2,false);

2930

//相容寫法

31function

bind(obj, evname, fn)

else

);38}39

}40bind(document,

'click

',fn1);

41bind(document,

'click

',fn2);42}

4344

script

>

45head

>

46<

body

>

47<

div>

4849

div>

50body

>

51html

>

call示例**:

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

title

>call

title

>

5<

meta

charset

="utf-8"

>

6<

meta

name

="viewport"

content

="width=device-width, initial-scale=1"

>

7<

script

>

8window.onload

=function

()12

13function

fn2(a,b)

1718

//fn1(); //window

19//

fn1.call(); //彈出window,此時就等同於fn1()

20//

fn1.call(1); //彈出1,call的第乙個引數為this的指向

21//

fn2.call(1,4,10); //依次彈出1,14,如果函式有引數時,則第乙個為this的指向,後面為函式帶的引數

22fn2.call(

null,4

,10); //

依次彈出window,14,第乙個引數為null表示不改變this指向。23}

2425

26script

>

27head

>

28<

body

>

29<

div>

3031

div>

32body

>

33html

>

js事件冒泡

什麼是js事件冒泡?在乙個物件上觸發某類事件 比如單擊onclick事件 如果此物件定義了此事件的處理程式,那麼此事件就會呼叫這個處理程式,如果沒有定義此事件處理程式或者事件返回true,那麼這個事件會向這個物件的父級物件傳播,從裡到外,直至它被處理 父級物件所有同類事件都將被啟用 或者它到達了物件...

js事件冒泡

2012 06 19 22 02 23 標籤 什麼是js事件冒泡?在乙個物件上觸發某類事件 比如單擊onclick事件 如果此物件定義了此事件的處理程式,那麼此事件就會呼叫這個處理程式,如果沒有定義此事件處理程式或者事件返回true,那麼這個事件會向這個物件的父級物件傳播,從裡到外,直至它被處理 父...

JS事件冒泡

事件冒泡 demo 冒泡現象 html 1 script src index.js script 2 style 3 c 8 b13 a 18style 19head 20 body 21 div id a 22 div id b 23 div id c 2425 div 26div 27div 2...