【jQuery入门】hover()方法操作总结
本篇文章我们来了解一下可以用jQuery轻松实现鼠标悬停处理的“hover()”方法!
hover()方法是什么?
首先我们先从“hover()”方法的基本知识开始学习!
hover() 方法可以确定当鼠标指针悬停在被选元素上时要运行的两个函数。
方法触发 mouseenter 和 mouseleave 事件。
使用“hover()”,可以触发例如下拉菜单或者工具提示等场景。
试着改变CSS
现在让我们来实际学习一下使用“hover()”的编程方法吧!
一般的描述方法是在参数中指定函数,如“对象元素.hover(函数1,函数2)”。
“函数1”是对象元素和鼠标光标重叠时的处理,“函数2”离开时的处理。
JavaScript代码如下:
$('button').hover( function() { //鼠标光标重叠时的处理 }, function() { //鼠标光标离开时的处理 } );
像这样鼠标光标在第一个函数内重叠时的处理,离开时第二个函数处理。
根据上述内容,我们来看一个具体的例子:
<body> <button>按钮</button> <script> $('button').hover( function() { //鼠标光标重叠时的处理 $('button').css('background-color', '#00f'); }, function() { //鼠标光标离开时的处理 $('button').css('background-color', '#f00'); } ); </script> </body>
在本例中放置了一个按钮元素,并判断鼠标光标是否在该按钮上。
使用“css()”方法更改按钮的背景颜色,具体取决于光标是重叠还是离开。
当光标重叠时,背景颜色变为“蓝色”,如下所示:
当光标离开时,背景颜色变为"red"。
这样就可以通过使用“hover()”方法轻松实现鼠标悬停处理了!
只使用一个函数
之前我们指定了两个函数作为“hover()”的参数,但实际上,即使只有一个也可以。
需要注意的是在这种情况下,当鼠标光标悬停在元素上和离开时,会执行相同的功能。
相反如果想在任何一种情况下执行相同的功能,这是使用它的最佳方式。
实例:
<body> <button>按钮</button> <script> $('button').hover( function() { //准备颜色组 var colors = ['#f00', '#0f0', '#00f', '#f0f', '#0ff', '#ff0']; //生成随机数 var rnd = Math.floor(Math.random() * colors.length); //更改背景色 $('button').css('background-color', colors[rnd]); } ); </script> </body>
在这个例子中我们只为hover()指定了一个函数,以便在光标反复时执行相同的函数。
在函数内部,按钮的背景颜色准备在一个数组中,以便颜色随机变化。
换句话说,当我们正在制作一个按钮,当鼠标光标重叠并离开时,该按钮会更改为随机背景颜色。
释放“hover()”
现在我们来看看如何取消我们设置的“hover()”方法的事件处理!
一般来说,jQuery 提供了一个“off()”方法来取消事件处理。
但是即使你这样写,hover() 也不会被释放!
$('button').off('hover');
正如我们在开始时解释的那样,hover()方法始终是将“mouseenter/mouseleave”总结为一个的方法。
因此要解除hover()的事件处理,请记述方式!
$('button').off('mouseenter mouseleave');
通过分别执行“mouseenter / mouseleave”和“off()”方法,可以取消hover()事件处理。
利用“on”实现hover
我们之前解释过 hover() 触发 mouseenter 和 mouseleave 事件。
现在让我们看看我们如何利用“on()”方法来获得与 hover() 相同的功能!
“on()”可以在参数中描述多个事件过程。
语法:
$(selector).on(event,childSelector,data,function)
如果你利用了这个特性,可以很容易地实现和 hover() 一样的事件处理!
<body> <button>按钮</button> <script> $('button').on({ 'mouseenter': function() { console.log('鼠标重叠了!'); }, 'mouseleave': function() { console.log('鼠标离开了!'); } }) </script> </body>
在此示例中“mouseenter / mouseleave”事件处理在 on() 方法的参数中指定。
当鼠标光标与元素重叠时执行“mouseenter” ,离开时执行“ mouseleave ”。
为什么hover()不起作用
如果某些条件重叠,就会出现“hover()”不能正常工作的现象,所以我来介绍一下!
这个“特定条件”是当你尝试 hover()一个来由 jQuery后添加的元素时。
实例:
<body> <script> $('button').hover( function() { console.log('重叠'); }, function() { console.log('离开'); } ) $('body').append('<button>按钮</button>'); </script> </body>
在此示例中可以看到使用“append()”添加了按钮元素。
然后为此按钮使用 hover() 执行事件处理,但它不能正常工作。
因为程序从上到下运行,所以当你 hover() 时,“按钮元素”还不存在。
如果你在 hover() 之前写“append()”,那么它是可以正常执行的。
但是在实际编程中一个一个地考虑执行顺序是很麻烦的,而且可能会导致bug的产生。
这里我们可以使用on()方法,“on()”方法具有可以对后添加的元素执行事件处理的特性。
实例:
<body> <script> $('body').on({ mouseenter: function() { console.log('重叠'); }, mouseleave: function() { console.log('离开'); } }, 'button') $('body').append('<button>按钮</button>'); </script> </body>
在本例中“append()”用于后添加“按钮元素”,事件处理通过“on()”方法。
需要注意的是on()的写法,on()的语法是$(selector).on(event,childSelector,data,function),在这种情况下 “按钮”被指定为参数,因为我们希望将事件处理与按钮元素相关联。
这样一来,即使后添加按钮元素,事件处理也会成功执行。
本文来源:词雅网
本文地址:https://www.ciyawang.com/jq-76.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
jQuery淡入:提高网站用户体验的利器
在现代Web设计中,用户体验是至关重要的一环。一个好的用户体验能够吸引许多用户,使他们留在你的网站上,而一个糟糕的用户体验则可能导致用户迅速离开你的网站。在这个背景下,jQuery淡入成为了提高网站用...
-
使用jQuery Parents方法和Parent来操作DOM元素
在前端开发中,操作DOM元素是一个非常重要的任务。而jQuery是一个非常常用的JavaScript库,它提供了很多方法来方便地操作DOM元素。而其中,Parents方法和Parent方法就是两个非常...
-
如何使用jQuery获取textarea的值
在前端开发中,获取用户输入的数据是非常重要的。而textarea是一种常见的文本输入框,本文将介绍如何使用jQuery获取textarea的值。1. 获取textarea的值要获取textarea的值...
-
【jQuery入门】总结如何用replace()替换字符串
replace()方法是什么? 下面就从replace方法的基础知识开始学习吧!replace方法是一种允许您用任何字符替换字符串的方法。 它对一般的字...
-
获取jquery文本表单的输入事件
编写一个示例代码,在jquery的“on”方法中使用“touchmove”获取文本表单的输入事件。获取文本表单的输入事件要获取文本表单的输入事件,请在“on”方法中指定“input”。$('指...
-
详解如何在jQuery选择器中使用正则表达式和属性过滤器
这一次,我们来学习使用正则表达式和属性过滤器来指定 jQuery 选择器的方法!比正则表达式更简单的属性过滤器是什么?让我们从学习属性过滤器开始,它比正则表达式更容易指定选择器!首先,jQuery 选...
-
使用jQuery在指定的html标签中插入html代码
编写一个示例代码,使用jquery的wrapInner()方法在指定的html标签插入插入html代码。在指定的html标签中插入html代码wrapInner()方法可以在指定的html标签插入插入...
-
详解如何使用jQuery的submit()方法提交表单
这次,我们来学习一下“submit()”方法,它可以让你从jQuery中操作Form元素的提交!什么是submit()那么我们先从“submit()”方法的基础知识说起吧!“submit()”是一种允...
-
详解jQuery使用contents()方法获取指定元素的子元素和文本节点
这一次,让我们通过一个示例来了解如何使用 jQuery 的“contents()”方法。 如果只是简单的“选择子元素”,可以在children()方法中使用,但在选择“不...
-
详解jQuery使用.show()/.fadeIn()淡入指定元素
这一次,让我们通过一个示例来解释如何使用jQuery的“.show( )/.fadeIn()”。.show()/.fadeIn() 的作用是什么?.show()/.fadeIn()可以“淡入显示dis...