网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 jquery中取消和绑定hover事件的实现代码
内容
    在网页设计中,我们经常使用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事件的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/15 10:33:13