溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jquery on bind之間有哪些區(qū)別

發(fā)布時間:2020-09-10 10:53:40 來源:億速云 閱讀:138 作者:小新 欄目:web開發(fā)

小編給大家分享一下jquery on bind之間有哪些區(qū)別,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

JQuery從1.7+版本開始,提供了on()和off(),進行事件處理函數(shù)的綁定和取消。這2個API與JQuery最初提供的bind()和unbind()有很多相似的地方,也有一些不同之處。bind和unbind的詳細介紹,可以參考這篇文章。

on()和bind()的函數(shù)簽名如下:

  1. bind(type, [data], fn)  
      
    on(type,[selector],[data],fn)

可以看到2個函數(shù)的區(qū)別在于:是否支持selector這個參數(shù)值。由于javascript的事件冒泡特性,如果我們在父元素上注冊了一個事件處理函數(shù),當子元素上發(fā)生這個事件的時候,父元素上的事件處理函數(shù)也會被觸發(fā)。如果使用on的時候,不設置selector,那么on與bind就沒有區(qū)別了。

  1. <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,代碼如下

  1. $("#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è)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI