js 事件委託的一些想法

2021-09-07 05:36:41 字數 1551 閱讀 5239

原生 js 的事件委託可以利用事件冒泡來實現

核心思想是利用 target

target 是處於事件目標階段的元素

currenttarget 是註冊了事件的元素

jquery 的 on 方法可以方便的實現事件委託

下面是相關**和小結

(個人筆記, 較雜亂)

add/* *************** 原生 js 的事件委託實現 *************** */

window.addeventlistener('load', function () , false);

// 原生 js 實現事件委託

// 利用 target ,target 是目標階段的元素

// currenttarget, 是監聽事件的元素

ulobj.addeventlistener('click', function (event)

ele = ele.parentnode;

}// 跳出迴圈,ele 為 null 或者 ele.nodename === 'ul'

ele && ulobj.removechild(ele);

}, false);

}, false);

/* *************** jquery 的 on 方法 *************** */

$(function ($) );

var spanobj = $('span');

spanobj

.css()

.on('click', function (event) );

var aobj = $('a');

aobj.css();

});// jquery 裡面的 childselector, 選擇的是 後代中的元素

// 如果不填 或者為 null, 那麼每次該元素發生事件的時候都會執行事件處理函式, 是為 直接事件, 這個時候,本身是 curenttarget

// 當第二個引數 childselector 存在的時候,當前本身不會有事件的註冊,而符合 childselector 的選擇的所有元素,會有事件註冊,是為 委託事件,這個時候,符合的元素皆是 currenttarget,即 註冊了事件的元素

// 而委託事件的順序 似乎是在 直接事件的順序之後,這裡是這樣的,可能有其他因素干擾,暫不管

$('#uu').on('click', 'span', function (event) );

});/**

* 小結:

* * 原生 js ,實現事件委託,是利用 event.target 來實現

* 注意巢狀元素的問題,要適當判斷處理

** jquery 的 on方法,可以很方便的實現事件委託

* 注意第二個引數的設定

* 第二個引數是後代元素的選擇器,設定了以後,當前本身元素不再註冊事件

* 而被選擇的後代元素,會被註冊事件,成為 currenttarget**

* target:

* 指的是處於事件目標階段的那個元素

** currenttarget:

* 指的是註冊了事件的那個元素**

JS變數提公升的一些想法

專欄剛剛開通,先把自己以前寫的一些沒人看的答案搬運過來填補一下空白.變數的問題,莫過於宣告和賦值兩個步驟,而這兩個步驟是分開的。函式宣告被提公升時,宣告和賦值兩個步驟都會被提公升,而普通變數卻只能提公升宣告步驟,而不能提公升賦值步驟。變數被提公升過後,先對提公升上來的所有物件統一執行一遍宣告步驟,然...

關於事件與委託的一些對比

using system private static void goodbye string str static void main string args 我的理解就是,delegate就是乙個函式的指標,用他宣告的變數實質上就是乙個函式,這就要求繫結的時候函式的返回值和引數列表必須符合del...

最近一些想法

1.it系統的建設中,當前的方 似乎仍舊沒有足夠重視對目標的認識 這造成的結果,以盲人摸象來形容,實際上是太輕了。今天上街看給小孩玩的電動小象形狀會唱歌但不會動的那種汽車,小孩的媽媽說,咱們去騎小象吧,這給了我乙個認識 我們建模的時候甚至在更早的步驟中進行分析和抽象的時候,往往就是這麼做的。即便不是...