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 相关文章推荐
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
Mootools 1.2教程 类(一)
Sep 15 Javascript
IE6下CSS图片缓存问题解决方法
Dec 09 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
JS日期加减,日期运算代码
Nov 05 Javascript
JavaScript程序设计之JS调试
Dec 09 Javascript
对象转换为原始值的实现方法
Jun 06 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
jQuery实现CheckBox全选、全不选功能
Jan 11 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
微信小程序如何像vue一样在动态绑定类名
Apr 17 Javascript
React中this丢失的四种解决方法
Mar 12 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
js正确获取元素样式详解
2009/08/07 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python爬虫增加访问量的方法
2019/08/22 Python
python实现静态服务器
2019/09/05 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
连锁超市项目计划书
2014/09/15 职场文书
授权收款委托书范本
2014/10/10 职场文书
网聊搭讪开场白
2015/05/28 职场文书
刘胡兰观后感
2015/06/16 职场文书