在jQuery當中,有兩個非常常用的事件綁定方法,它們分別是.live()和.on()。雖然這兩個方法的使用方法非常相似,但是它們在實際使用過程當中還是有一些區別的。
首先來看看.live()方法。這個方法可以綁定未來創建的元素,也就是說,如果在這個方法綁定的元素后面創建了新的元素,那么這些新的元素同樣也會繼承.live()方法所綁定的事件。這個方法在綁定大量元素時比較方便,因為這些元素可能還沒有出現在DOM中。
$(document).on("click", "button", function(){ alert("按鈕被點擊了"); });
而.on()方法則略有不同,它只能綁定已經存在于DOM中的元素,無法綁定未來創建的元素。這其中,.on()還有一個子方法,它就是.delegate(),這個方法可以實現和.live()類似的效果。
$('ul').on('click', 'li', function() { alert('列表項被點擊了'); });
總的來說,.live()方法現在已經被棄用了,因為它的實現方法不夠優秀,在綁定大量元素時可能會占用過多的內存。而.on()方法則是目前比較推薦的事件綁定方法,它的可讀性更好,同時在綁定元素時也更加靈活。