jq和js中click 事件的几种方式总结和click事件的累加问题解决办法

时间:2024-03-07 07:29:09

 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);

});