jq和js中click 事件的幾種方式總結和click事件的累加問題解決辦法


 1:常見的三種綁定click事件:

第一種:$("#click").click(function(){       

      alert("Hello World  click");  

    });

第二種:$('#clickon').on('click', function(){  

     alert("Hello World  on");  

    }); 

第三種:$('#clickbind').bind("click", function(){  

     alert("Hello World  bind");  

    });

如下代碼第一種和第二種和第三種在頁面會先后彈出1和2 后者不會覆蓋前面的。

<input type="button" id="btn">

$("#btn").click(function(){alert("1");})

$("#btn").click(function(){alert("2");})

想要只執行最近的點擊。之前的click事件先解綁就會只彈出2   用unbind或者off

$("#btn").on("click",function(){alert("1");})

$("#btn").unbind("click").click(function(){alert("2");});

$("#btn").unbind("click").bind("click",function(){alert("2");});

$("#btn").off("click").click(function(){alert("2");});

$("#btn").off("click").on("click",function(){alert("2");});

2:js中點擊事件

A:onclick是會覆蓋。只彈出2

btn.onclick = function() { 
alert(1);

btn.onclick = function() { 
alert(2);

B:element.addEventListener(type,listener,useCapture); type去掉事件前邊的“on”,比如“onclick”要寫成“click”,“onmouseover”要寫成momouseoveruse.Capture只能是true和false:true,采用capture(捕獲)模式;false,采用bubbling(冒泡)模式。如無特殊要求,一般是false。

addEventListener不會覆蓋。先彈出1在彈出2

btn.addEventListener("click",function(){

alert(1);

},false);

btn.addEventListener("click",function(){

alert(2);

},false);

c:element.attachEvent(type,listener);  type事件名稱,注意加上事件前邊的“on”,比如“onclick”和“onmouseover” IE8.0及其以下版本支持該方法

下面會先后彈出2和1

btn.attachEvent("onclick",function(){

  alert(1);

});

btn.attachEvent("onclick",function(){

  alert(2);

});

 

 


免責聲明!

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



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