JQ的live(),on(),deletage(),bind()幾個的區別

來源:互聯網
上載者:User

標籤:

  今天在網上看到一篇文章,關於JQ裡面事件綁定的區別,說說我自己看後的理解,本人菜鳥一枚,很多東西不懂 ,有理解錯誤的還望大神們多多指教

bind()方法是綁定事件最直接的方法,這個方法是綁定到document上存在最久的方法,也很好的解決了相容性方面的問題;

bind()方法的優點:1.很好的解決了各個瀏覽器的相容性問題;

         2.非常方便簡單的能進行事件的綁定;

          3.對於利用ID選出來的元素是非常好的,不僅僅是很快的可以hook上去(因為一個頁面只有一個id),而且當事件發生時,handler可以立即被執行實現方式;

bind()方法的缺點:1.bind()不會綁定在通過bind()添加的元素上面;

          2.他會綁定到所有選出來的元素上面;

          3.只有當頁面載入完成後才會執行bind()事件,可能會產生效率問題;

live()這個Binder 方法是通過冒泡機制來進行綁定的,由於在JQ1.7以上已經不推薦使用,在此不進行說明了;

deletage()這個方法在此之前從來沒有用過,看過萬丈後才知道還有這麼一個綁定事件的方法;

  deletage()這個方法的有點像live()方法,但不同於live()方法的地方在於他不會將event綁定到所有的ducoment上面,而是由你決定將他綁定在什麼上面;

    deletage()的優點:1.支援綁定到動態添加的元素上面

              2.你可以選擇把那個那個事件放到你指定的元素上面;

    deletage()的缺點:1.儘管減少了decoment已經很少了,但是還是需要來尋找那個元素上面綁定了那個事件。需要花一定的時間。

on():其實bind(),live(),delegate()都可以用on()方法來代替;就像undind();die()和undeletage()一樣可以用off()來實現一樣;

 

  on()的優點:1.提供了一種統一的綁定事件的機制。

  on()的缺點:1.隱藏了一些前面方法的細節。

 

總結:用bind()的代價是非常大的,他會把所有的時間綁定到DOM上面;

  live()zai JQ1.7上面已經不被推薦使用了;

  deletage()可以在動態元素上添加綁定事件;

  on()結合了前面3種方法,為綁定事件有個統一。但是ON()不支援綁定動態添加的元素

JQ的live(),on(),deletage(),bind()幾個的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.