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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
May 12 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
javascript iframe跨域详解
Oct 26 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
详解HTML5 使用video标签实现选择摄像头功能
Oct 25 Javascript
vue.js根据代码运行环境选择baseurl的方法
Feb 28 Javascript
详解vue-cli项目中怎么使用mock数据
May 29 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
react基本安装与测试示例
Apr 27 Javascript
vue实现信息管理系统
May 30 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
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
JS实现容器模块左右拖动效果
2020/01/14 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
理想演讲稿范文
2014/05/21 职场文书
社会发展项目建议书
2014/08/25 职场文书
英文慰问信范文
2015/03/24 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技