您好,登錄后才能下訂單哦!
小編給大家分享一下jquery on bind之間有哪些區別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
JQuery從1.7+版本開始,提供了on()和off(),進行事件處理函數的綁定和取消。這2個API與JQuery最初提供的bind()和unbind()有很多相似的地方,也有一些不同之處。bind和unbind的詳細介紹,可以參考這篇文章。
on()和bind()的函數簽名如下:
bind(type, [data], fn) on(type,[selector],[data],fn)
可以看到2個函數的區別在于:是否支持selector這個參數值。由于javascript的事件冒泡特性,如果我們在父元素上注冊了一個事件處理函數,當子元素上發生這個事件的時候,父元素上的事件處理函數也會被觸發。如果使用on的時候,不設置selector,那么on與bind就沒有區別了。
<p id="parent"> <input type="button" value="a" id="a"/> <input type="button" value="b" id="b"/> </p>
上面這段代碼,如果我們使用bind()在parent上綁定了click事件處理函數,當點擊a或者b按鈕的時候,都會執行事件處理函數。如果我們希望點擊a的時候觸發,點擊b的時候不觸發,那么可以使用on,代碼如下
$("#parent").on("click","#a",function(){ alert($(this).attr("id")); });
可以看到:on()函數的參數selector就是為了在事件冒泡的時候,讓父元素能夠過濾掉子元素上發生的事件。如果使用了bind,那么就沒有這個能力,子元素上發生的事件一定會觸發父元素事件。
還有一點需要注意:on綁定的事件處理函數,對于未來新增的元素一樣可以,和delegate效果相同,而bind則不行。
看完了這篇文章,相信你對jquery on bind之間有哪些區別有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。