jquery中取消和绑定hover事件的实现代码


Posted in Javascript onJune 02, 2016

在网页设计中,我们经常使用jquery去响应鼠标的hover事件,和mouseover和mouseout事件有相同的效果,但是这其中其中如何使用bind去绑定hover方法呢?如何用unbind取消绑定的事件呢?

一、如何绑定hover事件

先看以下代码,假设我们给a标签绑定一个click和hover事件:

$(document).ready(function(){
  $('a').bind({
    hover: function(e) {
      // Hover event handler
      alert("hover");
    },
    click: function(e) {
      // Click event handler
      alert("click");
    }
  });
});

当点击a标签的时候,奇怪的事情发生了,其中绑定的hover事件完全没有反应,绑定的click事件却可以正常响应。

但是如果换一种写法,比如:

$("a").hover(function(){
  alert('mouseover');
}, function(){
  alert('mouseout');
})

这段代码就可以正常的运行,难道bind不能绑定hover?

其实不是,应该使用 mouseenter 和 mouseleave 这两个事件来代替,(这也是 .hover() 函数中使用的事件) 所以完全可以直接像这样来引用:

$(document).ready(function(){
  $('a').bind({
    mouseenter: function(e) {
      // Hover event handler
      alert("mouseover");
    },
    mouseleave: function(e) {
      // Hover event handler
      alert("mouseout");
    },
    click: function(e) {
      // Click event handler
      alert("click");
    }
  });
});

因为.hover()是jQuery自己定义的事件,是为了方便用户绑定调用mouseenter和mouseleave事件而已,它并非一个真正的事件,所以当然不能当做.bind()中的事件参数来调用。

二、如何取消hover事件

大家都知道,可以使用unbind函数去取消绑定的事件,但是只能取消通过bind绑定的事件,jquery中的hover事件是比较特殊的,如果通过这种方式去绑定的事件,则无法取消。

$("a").hover(function(){
  alert('mouseover');
}, function(){
  alert('mouseout');
})

取消绑定的hover事件的正确方式:

$('a').unbind('mouseenter').unbind('mouseleave');

三、总结

其实,这些问题可以去参看jquery官方的说明文档,只是很少有人去看过,网上的大多数教程只是讲解如何去使用这个方法,达到目的即止,并没有深入的了解为什么这么写?

如果你有什么疑惑,欢迎评论留言。

以上这篇jquery中取消和绑定hover事件的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery中输入验证中一个不错的效果
Aug 21 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
jQuery和JavaScript节点插入元素的方法对比
Nov 18 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
May 08 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
Dec 08 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
Feb 13 Javascript
深入理解jQuery之事件移除
Jun 02 #Javascript
深入理解JQuery循环绑定事件
Jun 02 #Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 #Javascript
Javascript字符串拼接小技巧(推荐)
Jun 02 #Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 #Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 #Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 #Javascript
You might like
新浪新闻小偷
2006/10/09 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php中strtotime函数用法详解
2014/11/15 PHP
php阳历转农历优化版
2016/08/08 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python线程同步的实现代码
2018/10/03 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
2014道德模范事迹材料
2014/02/16 职场文书
检查接待方案
2014/02/27 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
美术学专业求职信
2014/07/23 职场文书
文明倡议书
2015/01/19 职场文书
财务工作个人总结
2015/02/27 职场文书
六一活动主持词
2015/06/30 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
Django如何与Ajax交互
2021/04/29 Python