聊一聊JQ中delegate事件委託的好處

2022-02-23 21:15:15 字數 1392 閱讀 9610

下面舉個例子 

我們希望通過點選使得點選的li標籤變紅

<

body

style

="height:2000px;"

>

<

ul>

<

li>1111

li>

<

li>1111

li>

<

li>1111

li>

<

li>1111

li>

ul>

body

>

普通寫法

$(function());

});

事件委託寫法

$(function());

});

我們發現以上兩種方法都可以使所點選的li標籤變紅,效果上沒有區別, 

但是普通寫法on是將事件加到li標籤上面, 

而事件委託delegate寫法事件並沒有加到li上面,而是加到了ul的上面,是$(this)觸發的時候指向了li;利用了冒泡原理。

事件委託的好處:

1、原本需要給多個元素新增,現在只需要給乙個元素新增,效能上比較好些。 

2、對後續建立生成的元素可以直接操作,而on事件不可用。

例如: 

當點選按鈕的時候,想ul裡面建立乙個li標籤

<

body

style

="height:2000px;"

>

<

input

id="input1"

type

="button"

value

="新增"

>

<

ul>

<

li>1111

li>

<

li>1111

li>

<

li>1111

li>

<

li>1111

li>

ul>

body

>

$(function

());

//對於新建立新增的li標籤點選無變化

$('ul').delegate('li','click',function

(ev));//

新建立新增的li標籤也可以變紅

//原因在於事件原本就不在li上面,新建立的和原本有的沒有區別,真正的事件是在ul身上,只要ul不變,ul裡面元素的事件都是可以觸發的

$('#input1').click(function

());

});

聊一聊情感那些事

想寫這樣一篇部落格吐露一下心聲已經很久了,一直沒找到合適的時間,今兒剛好是個百無聊賴的週末,索性就聊一聊博主的那些情感觀點。人為什麼要尋求伴侶?在類人猿時代,雌性有了強健雄性的庇護,能夠吃得飽穿得暖 雄性擁有了優秀的雌性,便能繁衍出健康的後代傳宗接代。簡而言之即是,擁有了優質伴侶便能夠更好地生活下去...

聊一聊系列 聊一聊移動web解析度的那些事兒

不同於pc時代,移動web的樣式更加多樣,也由於手機解析度的碎片化,移動web的相容問題日益突出,下面,我就和各位讀者一起聊聊移動web所面臨的手機解析度問題。在pc時代,我們書寫css的時候,理所應當的認為,我們所書寫的1px,在螢幕上就是1px的寬度。但是到了移動端,事情就不是這樣了,我們所書寫...

聊一聊JavaScript中typeof那點事兒

js是一門指令碼化語言,它在宣告變數時不需確定變數的型別,js在執行時會自動判斷。那麼怎麼判斷變數的型別呢?js提供了typeof運算子,用來判斷變數是什麼型別。方式一 typeof 表示式 對表示式做運算 方式二 typeof 變數名 對變數做運算 型別 結果string string numbe...