jquery中click事件绑定及移除的几种方法总结

作者 : 开心源码 本文共1883个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共326人阅读

绑定事件与解绑事件是常用到的写法,这里总结了几种常见的绑定事件与解绑事件的方法。

绑定click事件

一:直接在html标签里增加事件—–HTML元素行间事件(这种写法是JavaScript原生事件)

<input id="btn" type="button" value="点我" onclick="test();" />
function test() {    alert("行间事件");}

缺点:html与js紧密耦合

二:使用jq的click方法绑定

$("#btn").click(function(){     alert("jquery使用click绑定事件");})

三:使用jq的bind方法绑定

$("#btn").bind("click",function(){   alert("jquery使用bind绑定事件");})

四:使用jq的on方法绑定

$("#btn").on("click",function(){    alert("jquery使用on绑定事件");})

五:使用jq的可绑定动态元素的on方法绑定

 $("body").on("click","#btn", function () {      alert("jquery使用on可绑定动态元素事件"); })
点击按钮,这五个事件都会执行,执行顺序:1>2=3=4>5
其中行间事件onclick这种写法的事件最先触发,其次是监听事件click方法绑定,这种写法和写法三的on方法、方法四的bind方法是相同的,他们三者间的顺序取决于代码的顺序,谁在前那么谁就先绑定,方法五也是使用了on方法,但是这种写法可以给动态元素绑定事件,比方我们通过发送服务器请求动态加载到页面的元素,加载后的元素默认是没有绑定事件的,但是使用方法五可以成功为这种动态元素绑定事件,这种写法其实是发生的事件委托,监听父元素body,而后代替子元素执行click事件,所以是执行顺序在前面四种后

移除click事件

写法一的移除:

<input id="btn" type="button" value="点我" onclick="test();" />function test() {    alert("行间事件");}

这种写法其实可以了解为:

<input id="btn" type="button" value="点我" />/*点击的时候执行函数*/document.getElementById("btn").onclick = test;/*定义函数*/function test() {    alert("行间事件");}

那么移除事件就很简单了,一句代码搞定:

document.getElementById("btn").onclick = null;

写法二、三、四的移除:

$("#btn").on("click",function(){        alert("jquery使用on绑定事件");})$("#btn").click(function(){        alert("jquery使用click绑定事件");})$("#btn").bind("click",function(){        alert("jquery使用bind绑定事件");})

直接使用unbind方法

$("#btn").unbind("click");

或者者使用off方法:

$("#btn").off("click");

写法五使用on绑定动态元素的移除:

这种写法使用unbind无效,由于它绑定的对象是父元素body,那么需要用配对的函数off移除

$("body").off("click","#btn");

需要注意的是:事件委托写法的解绑的元素需要与事件绑定的目标元素一致(即案例中body,#btn需要逐个对应),否则不生效。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品;off() 方法是 unbind()、die() 和 undelegate() 方法的新的替代品。使用起来更方便,推荐使用。

其中关于off函数的参数说明如下:

    /*假如不传参,会移除所有的事件*/    $("#btn").off();    /*假如传递一个参数,会移除这个类型的所有事件*/    $("#btn").off('click');    /*假如传递两个参数,则移除这两个参数指定的事件*/    $("#btn").off('click',test);

原文作者技术博客:https://www.songma.com/u/ac4daaeecdfe
95后前台妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。
欢迎留言交流。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » jquery中click事件绑定及移除的几种方法总结

发表回复