JQuery入门——事件切换之hover()方法介绍

所谓切换事件,即有两个以上的事件绑定于一个元素,在元素的行为动作间进行切换,有两个方法用于事件的切换,一个方法是hover(),另一个是toggle(),感兴趣的朋友不妨了解下,或许对你有所帮助。

1、在JQuery中,有两个方法用于事件的切换,一个方法是hover(),另一个是toggle()。所谓切换事件,即有两个以上的事件绑定于一个元素,在元素的行为动作间进行切换。如一个超级链接标记<a>若想实现当鼠标悬停时触发一个事件,鼠标移出时又触发一个事件,可以用切换事件轻松实现。

2、示例代码

代码如下:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>切换事件hover</title>
 6 <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
 7 <script type="text/javascript">
 8 $(function(){
 9 $(".clsTitle").hover(function(){
10 $(".clsContent").show();
11 },
12 function(){
13 $(".clsContent").hide();
14 })
15 })
16 </script>
17 </head>
18
19 <body>
20 <div class="clsTitle">JQuery简介</div>
21 <div class="clsContent">JQuery是由美国人John Resig于2006年创建的一个开源项目,它的主旨是:以更少的代码,实现更多的功能</div>
22 </body>
23 </html> 

3、效果图预览


当鼠标移动到JQuery简介时:

二、应用实例

  • jQuery打造鼠标经过时的Hover效果,当鼠标滑过时,对应的表格行会添加背景色,以着重显示相应内容。
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 5 <title>jQuery hover特效</title>
 6 <script src="/ajaxjs/jquery1.3.2.js" type="text/javascript"></script>
 7 <script type="text/javascript">
 8 $(document).ready(function() {
 9 $("#orderedlist tbody tr").hover(function() {
10     // $("#orderedlist li:last").hover(function() {
11         $(this).addClass("blue");
12     }, function() {
13         $(this).removeClass("blue");
14     });
15 });
16 </script>
17 <style>
18 .blue {
19         background:#bcd4ec;
20 }
21 </style>
22 </head>
23 <body>
24 <table id="orderedlist" width="50%" border="0" cellspacing="0" cellpadding="0">
25 <!--用class="stripe"来标识需要使用该效果的表格-->
26 <thead>
27   <tr>
28     <th>姓名</th>
29     <th>年龄</th>
30     <th>QQ</th>
31     <th>Email</th>
32   </tr>
33 </thead>
34 <tbody>
35   <tr>
36     <td>邓国梁</td>
37     <td>23</td>
38     <td>31540205</td>
39     <td>[email protected]</td>
40   </tr>
41   <tr>
42     <td>温家宝</td>
43     <td>23</td>
44     <td>31540205</td>
45     <td>[email protected]</td>
46   </tr>
47   <tr>
48     <td>奥巴马</td>
49     <td>23</td>
50     <td>31540205</td>
51     <td>[email protected]</td>
52   </tr>
53 </tbody>
54 </table>
55 </body>
56 </html>

三、另外从hover延伸出  mouseout  , mouseout , mouseenter  ,  mouseleave.

一直对mouseover, mouseout和mouseenter, mouseleave还有hover之间的区别很联系总是模模糊糊的~这回真去认真比对了下~

mouseover - 鼠标指针经过任何子元素都会触发绑定在父元素上的mouseover事件
     mouseout - 鼠标指针离开任何子元素时都会触发父元素上的mouseover事件
     mouseenter - 鼠标指针经过绑定的元素时触发事件,经过其子元素时,不会触发事件
     mouseleave - 只有当鼠标离开绑定的元素时才会触发该事件
     hover!= mouseover+mouseout
     hover=mouseenter + mouseleave

实践了下:

[html]

  1. 1 <body>
    2     <div class="cont">
    3         <div class="parent">
    4             <div class="hover"></div>
    5         </div>
    6     </div>
    7 </body>  

[css]

  1.  1 .cont{
     2     position: relative;
     3     margin :0 auto;
     4     width:100px;
     5     height: 100px;
     6 }
     7 .parent{
     8     position: relative;
     9     width:100px;
    10     height: 100px;
    11     background: pink;
    12 }
    13 .hover{
    14     position: absolute;
    15     top:0;
    16     left: 0;
    17     width:100px;
    18     height: 100px;
    19     background: #ccc;
    20     display: none;
    21
    22 }  

① hover事件

[javascript]

  1. 1 $(".parent").hover(function(){
    2     $(".hover").css("display","block");
    3     console.log("1")
    4 },function(){
    5     $(".hover").css("display","none");
    6     console.log("2")
    7
    8 });  

鼠标移入移出.parent div时控制台输出:

1

2

② mouseenter 和mouseleave事件

[javascript]

  1. 1 $(".parent").mouseenter(function(){
    2         $(".hover").css("display","block");
    3         console.log("1")
    4     });
    5 $(".parent").mouseleave(function(){
    6         $(".hover").css("display","none");
    7         console.log("2")
    8 });  

鼠标移入移出.parent div时控制台输出:

1

2

③mouseover和mouseout事件

[javascript]

  1. 1 $(".parent").mouseover(function(){
    2         $(".hover").css("display","block");
    3         console.log("1")
    4     });
    5 $(".parent").mouseout(function(){
    6         $(".hover").css("display","none");
    7         console.log("2")
    8 });  

鼠标第一次移入.parent div时,控制台输出:

1

2

1

移出时,输出:

2

这个就是传说中的冒泡事件了,才会在第一次移入.parent div时有两个1 出现,

第一个1是进入.parent div时触发的事件;

第二个1是进入.hover div时发生的mouseover事件向上冒泡到.parent div 触发的;

最后为什么木有两个2出现啊 冒泡吖~

这是因为最后移出时只是在.hover上发生的,有冒泡了,.parent 的移出在.hover的显示之前发生了,即第一个2

时间: 2024-12-18 23:16:55

JQuery入门——事件切换之hover()方法介绍的相关文章

jquery 添加节点的几种方法介绍

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>jQuery插入,复制.替换和删除节点</title> <script type="text/javascript" src="jquery-1.3.2.js"></scri

jquery绑定事件的系统参数传递方法

如果是传递的事件自带函数,,可使用以下语法(以鼠标移动事件为例): init: function () { $(document).on("mousemove", { mousemoveEvent: event }, loginOperation.noteLastTime) }, noteLastTime: function (e) { console.log(e.pageX + ", " + e.pageY); }, 如果是传递的自定义函数,修改: noteLas

JQuery入门(5)

一.页面加载事件 在jQuery中页面加载事件是ready().ready()事件类似于就JavaScript中的onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行. ready()方法的几种写法: 写法一: $(document).ready(function(){ //代码部分 }); //写法二: $(function(){ //代码部分 }) 写法二简洁明了,使用是最广泛的. 二.绑定事件 在jQue

jquery ui动态切换主题的一种实现方式

这两天看coreservlets上的jQuery教程,虽然比较老了,不过讲得还是不错. 最后一部分讲jQuery ui 主题切换,用他介绍的方法实现不了.于是自己修改了下,可以了. 代码如下: html部分: <fieldset class="ui-widget"> <legend>Changing Themes (Skins) at Run Time</legend> <div class="ui-widget-content ui

jQuery用unbind方法去掉hover事件及其他方法介绍

近日项目开发十分的繁忙,其中一个需求是实现响应式导航.(响应式的问题我们在css相关的博客中再交流) 大家都知道导航是需要下来菜单效果的,必然就会用到 jQuery的 hover() 方法.若是导航放在ipad中,自然hover()就没有什么意义了.那该如何取消hover()并添加touch事件呢? 今天遇到jquery需要去掉hover的问题,原以为直接unbind(“hover”)就可以搞定,可是搞了半天都报错. 原因其实很简单,hover并不是事件.打开参考手册,hover其实由 mous

jQuery入门(3)事件与事件对象

jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 一.事件与事件对象 首先看一下我们经常使用的添加事件的方式: 01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

jQuery.load()事件使用方法详解

jQuery.load()是ajax中一种异步加载的事件,我们可以加载整个页面并且也可以带参数加载,下面我来详细介绍jQuery.load()事件用法,希望对初学者有所帮助. .load( url, [ data ], [ complete(responseText, textStatus, XMLHttpRequest) ] ) 返回: jQuery 描述: 载入远程 HTML 文件代码并插入至 DOM 中.version added: 1.0.load( url, [ data ], [ c

jQuery中绑定事件的几种方法

以click事件为例,jQuery中绑定事件有三种方法: (1)target.click(function(){}); (2)target.bind("click",function(){}); (3)target.live("click",function(){}); 第一种方法很好理解,其实就和普通JS的用法差不多,只是少了一个on而已 第二.三种方法都是绑定事件,但是二者又有很大的不同,下面着重讲解一下,因为这个如果用到Jquery的框架的话是用的挺多的,尤其

jQuery入门——注册事件

下面举例介绍注册事件的几种方法: 以光棒效果为例 1.bind注册: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Insert title here</title> 6 <style type="text/css"> 7 .hover{ 8 background: #e8e8e8; 9 }