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 ui对话框实例代码
May 10 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
学习javascript面向对象 javascript实现继承的方式
Jan 04 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
JavaScript实现页面无操作倒计时退出
Oct 22 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
详解SPA中前端路由基本原理与实现方式
Sep 12 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
Vue.js 中的 v-show 指令及用法详解
Nov 19 Javascript
使用vue制作滑动标签
Sep 21 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 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
?生?D片??C字串
2006/12/06 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python表格存取的方法
2018/03/07 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
详解Python中的Lock和Rlock
2021/01/26 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
《孔繁森》教学反思
2014/04/17 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
理解python中装饰器的作用
2021/07/21 Python