jQuery事件綁定函數:on()與bind()的差異

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

相關文章
相關標籤/搜索