当事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如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方法。

最新文章

  1. jqGrid实现当前页列合计与总计
  2. C# 支持多种语言
  3. freeswitch 挂断前执行脚本
  4. OC - 28.模拟时钟
  5. Toast的使用具体解释
  6. C_const
  7. Spring源码情操陶冶-PropertyPlaceholderBeanDefinitionParser注解配置解析器
  8. php的函数参数按照从左到右来赋值
  9. jsp+postgresql学习笔记(1)用户登录与注册
  10. python之xml 文件的读取方法
  11. ansible笔记(4):常用模块之文件操作
  12. CentOS7 限制SSH密码尝试次数
  13. [DP地狱训练]Pascal山脉
  14. 简单的栈溢出demo
  15. [LeetCode&amp;Python] Problem 541. Reverse String II
  16. Android 开发工具类 36_ getSimSerial
  17. #C++初学记录(算法3)
  18. UI---------EventSystem
  19. HDU 4565 So Easy!(公式化简+矩阵)
  20. android不同的按钮一起点击崩溃解决

热门文章

  1. cocos2d-js 显示帧序列图中的一帧
  2. Contest - 多校训练(985专场) Problem C: 985的方格难题
  3. android代码实现免提功能
  4. Talking about Health
  5. postfix+dovecot配置多域名邮件服务器
  6. css选择器的优先级别
  7. 微信公众号系列 --- ionic在IOS的键盘弹出问题
  8. Kali-linux安装之后的简单设置(转)
  9. HDU 1176 免费馅饼(数塔dp)
  10. Flocker 做为后端存储代理 docker volume-driver 支持