jquery事件重復綁定的幾種解決方法 (二)


防止事件重復綁定共有4種方法:

  1. bind()、unbind()方法
  2. live()、die()方法
  3. off()、on()方法
  4. one()方法

  一、bind()、unbind()方法

  bind();綁定事件

  為被選元素添加一個或多個事件處理程序,並規定事件發生時運行的函數。

  從某種角度上講,bind("click",function(){})與click(function(){})是等價的。

  unbind();移除通過bind()方法添加的事件

  不僅僅對於bind()方法有效,它對於click()方法同樣有效。

$("#btn1").unbind("click").bind("click",function(){
         alert("我是btn1!");
  });
 $("#btn1").unbind().click(function(){
          alert("我是btn1!");
   });

 

二、live()、die()方法

  live();

  jQuery1.3增加了一個live()方法,給所有當前以及將來會匹配的元素綁定一個事件處理函數。

  支持:click,dblclick, mousedown, mouseup等。

  不支持 :blur, focus, mouseenter, mouseleave, change, submit。

  live()一次只能綁定一個事件

    jquery利用了事件的冒泡機制,直接把事件綁定在了document上,然后通過event.target找出事件的來源。

  要移除用live綁定的事件,請用die()方法

  die();

  在jquery里,使用live()來綁定事件,若想移除該事件,要使用die()方法。

 $("#btn1").die("click").live("click",function() {
        alert("我是btn1!");
  });

三、off()、on()方法

  on();綁定事件。

  從jQuery 1.7開始,on()函數提供了綁定事件處理程序所需的所有功能,用於統一取代以前的bind()、 delegate()、 live()等事件函數。

  即使是執行on()函數之后新添加的元素,只要它符合條件,綁定的事件處理函數也對其有效。

  該函數可以為同一元素、同一事件類型綁定多個事件處理函數。觸發事件時,jQuery會按照綁定的先后順序依次執行綁定的事件處理函數。

  要刪除通過on()綁定的事件,請使用off()函數。

  如果要附加一個事件,只執行一次,然后刪除自己,請使用one()函數。

  off();解除綁定事件

  off()函數用於移除元素上綁定的一個或多個事件的事件處理函數。

  off()函數主要用於解除由on()函數綁定的事件處理函數。

  on();函數和off();函數的返回值都為jQuery類型,返回當前jQuery對象本身。

 $("#btn1").off("click").on("click",function(){
        alert("我是btn1!");
  });

 四、one();方法

  綁定的事件處理函數只會執行一次。

 $("#btn1").one("click",function(){  
        alert("我只執行一次!");
  }); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM