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 相关文章推荐
js下用gb2312编码解码实现方法
Dec 31 Javascript
jQuery 核心函数以及jQuery对象
Mar 23 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
Dec 06 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
Apr 25 Javascript
原生js编写基于面向对象的分页组件
Dec 05 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
JS实现简易刻度时钟示例代码
Mar 11 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
Dec 29 Javascript
微信小程序canvas动态时钟
Oct 22 Javascript
JS Object构造函数之Object.freeze
Apr 28 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
虫族 ZERG 概述
2020/03/14 星际争霸
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
php中session定期自动清理的方法
2015/11/12 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python与Redis的连接教程
2015/04/22 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python自动发送邮件脚本
2018/06/20 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
研发工程师的岗位职责
2013/11/18 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
自荐信的格式
2014/03/10 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
公司投资建议书
2014/05/16 职场文书
科学发展观活动总结
2014/08/28 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
win7配置本地ftp服务器的图文教程
2022/08/05 Servers