首先,先來看乙個例子:如微博,每一條博文都有事件,如增加、刪除等!這樣子的話我們每次發微博的時候就得在建立的時候把該有的事件給加上。
html**:
js**:
var otext = document.getelementbyid("txt1");var obtn = document.getelementbyid("btn1");
var oul = document.getelementbyid("ul1");
var ali = oul.children;
obtn.onclick = function();
for(var i = 0; i < ali.length; i++); }
在沒有了解事件委託之前,舉得這樣寫是妥妥的!
但是,如果li很多的話,用for迴圈很耗效能,並且給每個li都加事件,每個li的事件很多,也是很佔記憶體。
說到這的話,事件委託就應該的隆重的出現!
原理:事件委託也叫事件**,它是利用事件冒泡的原理,把子集的事件加到父級上,通過父級來觸發子集的執行效果。
事件委託需要用到事件源,但是不相容!ie瀏覽器(chrome也適用)用
ev.srcelement
高階瀏覽器用ev.target
相容寫法:var osrc = oevent.srcelement || oevent.target;
接下來看**就行了
js**:(把上面的for迴圈代替為以下)
oul.onclick = function(ev)};
改寫之後,不僅提高了效能,節省了**量。
關於委託和事件
委託 delegate 是一種資料結構,它引用靜態方法或引用類例項及該類的例項方法。它宣告定義一種引用型別,該型別可用於將方法用特定的簽名封裝。委託例項封裝靜態方法或例項方法。委託大致類似於 c 中的函式指標 但是,委託是型別安全和可靠的。宣告採用下列形式 attributes modifiers ...
C 關於類的事件和委託
事件是c 中的又乙個重要概念,在發生其他類或物件需要關注的事情時,本類或物件可以通過事件來通知它們。傳送事件的類稱為事件的傳送者,而接受事件的類稱為事件的訂閱戶。c 委託 委託使用的關鍵字為delegate。class program public void playstart string nam...
關於委託和事件的示例(原創)
關於委託和事件,許多高手都已經對此進行了很詳盡的描述,昨晚突然想到乙個情景,於是今天寫了這個委託和事件的例子出來,純粹是為了練習一下,也希望這篇隨筆對您有幫助!情景大概是這樣的 有乙個老師,他教好幾個班級,然後每次考試後,他都會小小懲罰成績低於幾個班級成績的平均分的同學,同學們自然會很怕受罰啊,考完...