Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 592|回复: 0

jquery事件重复绑定的几种解决方法 (二)

[复制链接]
  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 776 天

    [LV.10]以坛为家III

    2046

    主题

    2104

    帖子

    71万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    714508
    发表于 2021-6-25 12:52:11 | 显示全部楼层 |阅读模式

    防止事件重复绑定共有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("我只执行一次!");
      }); 

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-8-15 15:23 , Processed in 0.059627 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表