jQuery從1.7+版本開始,提供了on()和off()進行事件處理函數的綁定和取消。on()和bind()這兩個方法有相同的地方也有不一樣的地方.函數
bind(type,[data],fn);
on(type,[selector],[data],fn);
二者的區別就在因而否支持selector這個參數值。若是使用on的時候,不設置selector,那麼on與bind就沒有區別了。this
e<div id="parent"> <input type = "button" value="a" id=「a」> <input type = "button" value="b" id=「b」> </div>
上面的代碼中,若是咱們使用bind()在parent上綁定了click事件處理函數,當點擊a或者b按鈕的時候,都會執行事件處理函數。若是咱們但願點擊a的時候觸發,點擊b的時候不觸發,那麼能夠使用on,代碼以下:spa
$("#parent").on("click","#a",function(){ alert($(this).attr("id")); })
bind方法沒法實現該功能。code
還有一點須要注意:on綁定的事件處理函數,對於將來新增的元素同樣能夠的,和delegate效果相同,而bind則不行。blog
delegate用法與on()相同,只是參數的順序不一樣:事件
delegate([selector],type,[data],fn);
還有一個live()方法,在jQuery1.9中被移除了,徹底能夠使用on()來替代它得做用,不建議使用此方法。input