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 常用方法总结
Jun 03 Javascript
js页面跳转常用的几种方式
Nov 25 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
Mar 10 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
js 实现的可折叠留言板(附源码下载)
Jul 01 Javascript
js从外部获取图片的实现方法
Aug 05 Javascript
js实现前端分页页码管理
Jan 06 Javascript
Vuejs实现购物车功能
Nov 05 Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
vue组件中的样式属性scoped实例详解
Oct 30 Javascript
mock.js模拟前后台交互
Jul 25 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php多文件上传实现代码
2014/02/20 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
pandas中去除指定字符的实例
2018/05/18 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
pandas针对excel处理的实现
2021/01/15 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
蒂娜商店:Tiina the Store
2019/12/07 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
教师节宣传方案
2014/05/23 职场文书
忠诚教育心得体会
2014/09/03 职场文书
2014年统计工作总结
2014/11/21 职场文书
赢在中国观后感
2015/06/02 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书