js事件委託

2022-09-02 14:33:09 字數 912 閱讀 3607

事件委託也叫事件**,事件委託就是利用事件冒泡,只指定乙個事件處理程式,就可以管理某一型別的所有事件。

利用事件冒泡,而冒泡指的就是事件從向上傳遞事件,如果事件有相應的函式繫結就會執行其繫結函式。

舉例:ul下的li元素有繫結事件,我們通過ul繫結委託之後,委託的原始碼部分會在其執行函式內針對事件源進行篩選判定是否符合篩選條件(是否是li),然後針對的獲取屬性或者內容,進行相關的操作。從這裡可以看到沒有直接針對特定元素繫結事件,而是對事件源進行匹配,所以不存在新生元素無事件的問題。

//原生方法

window

.onload

=function()}

}

適合:click,mousedown,mouseup,keydown,keyup,keypress。

不適合:mouseover,mouseout,

沒有:focus,blur

$(par).on("click",'child',fn)

事件監聽:w3c規範中定義了3個事件階段,依次是捕獲階段、目標階段、冒泡階段。

event : (必需)事件名,支援所有dom事件。

function:(必需)指定要事件觸發時執行的函式。

usecapture:(可選)指定事件是否在捕獲或冒泡階段執行。true,捕獲。false,冒泡。預設false。這裡導致預設事件是事件向上冒泡的。

捕獲階段:父元素先觸發,子元素後觸發;

冒泡階段:子元素先觸發,父元素後觸發。

【領取方法】

js事件委託

乙個ul列表,裡邊有乙個1000個li元素,如何為這1000個li元素新增click事件?function false 參考文章 作為閉包使用的 function 已知ab兩個有序陣列,a陣列長度m,b陣列長度n,請最多迴圈m n次找出a,b陣列中相同的元素 對 事件處理程式過多 問題的解決方案就是...

js事件委託

事件委託 通俗的講把自己應該做的事情交給別人去做,也就是利用冒泡原理,把這個這個事件交給父級或祖先去觸發執行效果。用例項來說。需求是這樣的 滑鼠放到li上對應的li背景變灰。利用事件冒泡實現 ul on mouseover function e 也許有人會說,我們直接給所有li都綁上事件也可以啊,一...

js事件委託

在給多個標籤定義乙個事件的時候我們不會給每個dom都新增乙個事件浪費很多的資源,為此可以使用js的事件委託。在圖靈社群上給事件委託是這樣定義的 事件委託就是事件目標自身不處理事件,把事件委託給父元素或者祖先元素,甚至根元素。這裡註明文章出處 自己寫了乙個demo 給ul下的每個li新增乙個click...