深入理解jQuery之事件移除
来源: 阅读:708 次 日期:2016-06-17 11:30:38
温馨提示: 小编为您整理了“深入理解jQuery之事件移除”,方便广大网友查阅!

有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如bind()方法,可以通过unbind()方法来移除事件的效果。

比如下面的一个案例:

代码如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", function(){

           $('#test').append("<p>我的绑定函数1</p>");

       }).bind("click", function(){

           $('#test').append("<p>我的绑定函数2</p>");

       }).bind("click", function(){

            $('#test').append("<p>我的绑定函数3</p>");

       });

  })

</script>

html部分:

代码如下:

<body>

<button id="btn">点击我</button>

<div id="test"></div>

</body>

当点击按钮btn时,触发了三个点击事件,这里的append()方法,向div层中传递了三个段落内容。

append() 方法在被选元素的结尾(仍然在内部)插入指定内容。它与html()方法还是不同的,html()方法是改变整个元素中的内容,而不是向元素结尾插入内容。text()方法与html() 方法类似,但区别在于html()方法中可以写入html的代码,而且可以被正确的解析,而text() 只能当html代码为正常的字符串。

这里每次点击,都会执行一次事件,想div层末尾添加段落。

下面的代码是取消事件效果的,可以通过删除事件,使点击效果失效:

代码如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", function(){

           $('#test').append("<p>我的绑定函数1</p>");

       }).bind("click", function(){

           $('#test').append("<p>我的绑定函数2</p>");

       }).bind("click", function(){

            $('#test').append("<p>我的绑定函数3</p>");

       });

    $('#delAll').click(function(){

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

    });

  })

</script>

$('#btn').unbind("click");这句代码的作用就是取消元素btn下的click事件。它不仅仅对于bind()方法有效,它对于click()方法同样有效。从某种角度上讲,bind("click",function(){})与click(function(){})是等价的。

 还可以针对具体的方法,删除特定的事件。

代码如下:

<script type="text/javascript">

  $(function(){

    $('#btn').bind("click", myFun1 = function(){

           $('#test').append("<p>我的绑定函数1</p>");

       }).bind("click", myFun2 = function(){

           $('#test').append("<p>我的绑定函数2</p>");

       }).bind("click", myFun3 = function(){

            $('#test').append("<p>我的绑定函数3</p>");

       });

    $('#delTwo').click(function(){

       $('#btn').unbind("click",myFun2);

    });

  })

</script>

unbind()方法的第二个参数是事件对应得执行函数的名字,这样执行完后,只有myFun2这个事件被删除了,其他两个click事件正常执行。

还有一种跟bind()方法类似的方法one(),区别大概就是one()方法只执行一次。

为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

代码如下:

<script type="text/javascript">

  $(function(){

    $('#btn').one("click", function(){

           $('#test').append("<p>我的绑定函数1</p>");

       }).one("click", function(){

           $('#test').append("<p>我的绑定函数2</p>");

       }).one("click", function(){

            $('#test').append("<p>我的绑定函数3</p>");

       });

  })

</script>

点击后,只执行一次。再次点击不会触发效果。这就是one方法。

以上这篇深入理解jQuery之事件移除就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
手机网站地址:深入理解jQuery之事件移除
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map