今天遇到這個問題,在某個function中增加某個元件的click事件,但發現此function呼叫一次就會多綁一次。

找到unbind()這個jQuery function,可以清除現有的綁定事件

http://api.jquery.com/unbind/

unbind()可清除所有綁定事件,unbind("click")可清除click事件。

2018-01-12更新:

unbind在1.7之後改為使用off

http://api.jquery.com/off/

Old Way (pre-1.7):

 

$('...').attr('onclick','').unbind('click');

 

 

New Way (1.7+):

 

$('...').prop('onclick',null).off('click');

 

 

--

參考自

http://blog.csdn.net/love__coder/article/details/6657408

--

最近在用jQuery对一个页面超链接元素进行click事件绑定,绑定调用方法如下:

 

 

[javascript] view plain copy
  1. function OpenUrl(url){   
  2.     $("a[rel='xggl']").click(function () {  
  3.        window.open(url,"_blank");  
  4.     }  
  5. }  

第一次点击超链接,一切正常,第二次点击超链接,竟然打开两个窗口,再次打开,打开的窗口越来越多,怎么回事呢?

 

显然,click事件是append 的 而不是replace。抓紧翻阅jquery的api【http://visualjquery.com/】,很幸运找到了一个函数unbind,代码修改如下:

 

[javascript] view plain copy
  1. function OpenUrl(url){   
  2.        <span style="color:#FF6666;"> $("a[rel='xggl']").unbind('click');</span>  
  3.     $("a[rel='xggl']").click(function () {  
  4.        window.open(url,"_blank");  
  5.     }  
  6. }  

再次运行程序,一切ok!!!!

 

--

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()