事件的高階用法

2021-10-07 21:28:29 字數 1897 閱讀 3107

1.事件函式

obj.on-事件名=fn

定義事件的時候,事件函式不會自動執行,當事件觸發的時候,會執行

2.事件物件

1)事件物件:當瀏覽器執行事件的時候,會將所有與事件相關的內容(滑鼠位置,觸發的目標等)封裝為乙個物件,並且在觸發事件的函式,在事件函式中進行傳遞

event

常見屬性:

clientx

clinety 滑鼠相對客戶端的位置

pagex

pagey 滑鼠相對於頁面的位置

type 事件型別

target 事件作用的節點物件

2)事件的相容性:

在低版本的ie和火狐上,事件傳遞機制不一樣,需要通過window.event來獲取事件

window.event||e

1. 事件繫結

新增事件的做法,若出現為同乙個節點繫結了同名的事件,會出現覆蓋效果。

addeventlistener(事件名,事件函式,isbubble)

isbubble :預設為false 事件是冒泡機制 true 事件為捕獲機制

注意:事件名沒有on字首

removeeventlistener(事件名,事件函式,isbubble)

注意:一定要保證移除事件時和新增事件時是同乙個事件函式

事件繫結相容性問題:在低版本ie中(ie 6/7/8)不支援addeventlistener和removeeventlistener,

在低版本ie中可以使用:

attachevent(事件名,事件函式) 繫結事件

detachevent 取消事件

注意:事件名 包含on字首

兩種事件繫結的區別:

1.addeventlistener:

事件名沒有on字首

可以選擇冒泡或者捕獲機制

this 指事件呼叫者

同名事件的執行順序:先新增先執行

2.attachevent

事件名需要新增on字首

不能選擇冒泡或捕獲的機制

this 指window物件

同名事件的執行順序:後新增先執行

事件繫結相容性寫法的封裝:

事件流:事件被觸發之後會在dom樹的節點之間傳遞

冒泡:事件由最具體的元素(事件的觸發者),層層向外傳遞(傳遞給父節點),直到window 物件停止

捕獲:事件由最外層元素(window),層層向內傳遞,直到最具體的元素

事件流機制有時候會對頁面效果造成一些影響,所以需要攔截事件的冒泡:

相容性寫法:

window.event?window.cancelbubble=true:e.stoppropagation()

攔截瀏覽器自帶的一些事件行為,例如:a超連結的跳轉等…

物件.事件名 return false

物件.addeventlistener() e.preventdefault()

物件.attachevent() e.returnvalue=false; retrun false;

右鍵事件:oncontextmenu

鍵盤事件:onkeydown onkeyup onkeypress

鍵盤事件的屬性:

key 在ie中不支援 鍵名稱

keycode 鍵碼

滾輪事件:

onmousewheel 標準瀏覽器和ie

物件.addeventlistener(「dommousescroll」,事件函式,false) 火狐

滾輪事件對:

wheeldelta 標準瀏覽器和ie 120 -120 下 120 上

detail 獲取 3

事件委託:事件新增元素父節點(原理:事件的冒泡機制)

將事件新增到父元素上,當事件發生時,父元素會找到對應觸發事件的子元素去處理,後期新增的子元素,依然有這個事件

on 的高階用法

針對自己處理機制中,不僅有on方法,還有根據on演變出來的live方法 1.7後去掉了 delegate方法等等。這些方法的底層實現部分 還是on方法,這是利用了on的另乙個事件機制委託的機制衍變而來的 委託機制 on events selector data handler eventobject...

python高階用法 Python高階用法

python高階用法 三元表示式 x 10 y 20 print x if x y else y x 100 y 20 print x if x y else y 列表推導式和生成器 列表推導式 print i for i in range 10 print i 2 for i in range 1...

關於高階事件的使用

1.事件繫結 ie獨有下的繫結事件 attachevent 事件名,函式 反向執行,且乙個按鈕可執行多個事件的功能。detachevent 解除繫結 ff chorme下的繫結事件 addeventlistener removeeventlistener 解除繫結 2.捕獲事件 物件.addeven...