下面舉個例子
我們希望通過點選使得點選的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...