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 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
node中的cookie的具体使用
Sep 13 Javascript
微信小程序中为什么使用var that=this
Aug 27 Javascript
JS实现星星海特效
Dec 24 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 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
php与Mysql的一些简单的操作
2015/02/26 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
施工人员岗位职责
2013/12/12 职场文书
八年级生物教学反思
2014/01/22 职场文书
计算机网络专业求职信
2014/06/05 职场文书
工作所在部门证明
2014/09/21 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis