on與click的差別
在jQuery當中,時常會使用到 on、click 這兩種方式來操控你要的DOM,那兩者差別在哪?
click
click只會對現在html裡面你指定的元素有效。
假設html環境如下
1 | <div class="wrap"> |
js環境如下
1 | $('.alertBtn').click(function (e) { |
以這個假設的環境來說的話,因為click的事件是在.box1新增button之前所設定,所以如果點擊 jQuery通知 這個按鈕就不會執行alert。
但是如果把 jQuery通知 放到click事件之前 (如下),那 jQuery通知 就能夠執行alert。
1 | $('.box1').html('<input type="button" value="jQuery通知" class="alertBtn">'); |
on
on就像是監聽,他可以隨時監控你的行為,就算是後來才用jQuery、JS新增的標籤它都會隨時保持關注。
所以你不管是
1 | $('.wrap').on('click', '.alertBtn', function () { |
或者是
1 | $('.box1').html('<input type="button" value="jQuery通知" class="alertBtn">'); |
順序不管是怎麼放它都有辦法監聽到,而且on所佔的記憶體還比click還少唷!