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