• 技术文章 >web前端 >前端问答

    jquery怎么删除hover事件

    青灯夜游青灯夜游2022-12-16 17:13:22原创94

    在jquery中,可以利用unbind()方法来删除hover事件;但不能直接使用“unbind("hover")”语句,因为hover是由mouseenter和mouseleave构成的,所以要删除hover效果,只需要移除这两个事件即可,语法“元素对象.unbind("mouseenter").unbind("mouseleave")”。

    本教程操作环境:windows7系统、jquery3.6.1版本、Dell G3电脑。

    今天遇到jquery需要去掉hover的问题,原以为直接unbind("hover")就可以搞定,可是搞了半天都不行。

    $("button").click(function() {
    	$("p").unbind("hover");
    });

    1.gif

    原因其实很简单,hover并不是事件。打开参考手册,hover其实由 mouseenter和mouseleave构成的。这样问题就很明了!

    /* 这种方法是错误的 */
    $(#hover_div).unbind("hover");
    
    /* 这种方法也是错误的 */
    $(#hover_div).unbind("mouseover").unbind("mouseout");
    
    /* 这种方法是新增的,在老的版本里是无法使用的 */
    $(#hover_div).unbind("mouseenter mouseleave");
    
    /* 这种方法正确的,新老版本皆可用 */
    $(#hover_div).unbind("mouseenter").unbind("mouseleave");

    上面的代码建议使用第四种,相对安全些。

    使用示例:

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<script src="js/jquery-3.6.1.min.js"></script>
    		<script>
    			$(document).ready(function() {
    				$("p").hover(function() {
    					$("p").css("background-color", "yellow");
    				}, function() {
    					$("p").css("background-color", "pink");
    				});
    
    				$("button").click(function() {
    					$("p").unbind("mouseenter").unbind("mouseleave");
    				});
    			});
    		</script>
    	</head>
    	<body>
    
    		<p>鼠标移动到该段落。</p>
    		<button>删除hover</button>
    	</body>
    </html>

    2.gif

    说明:unbind()方法

    unbind() 方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。

    该方法也可以通过 event 对象取消绑定的事件处理程序。该方法也用于对自身内部的事件取消绑定(比如当事件已被触发一定次数之后,删除事件处理程序)。

    【推荐学习:jQuery视频教程web前端视频

    以上就是jquery怎么删除hover事件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:jquery javascript
    上一篇:jquery isEmptyObject()方法有什么用 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • jquery怎么实现点击隐藏元素• jquery中有焦点事件吗• jquery怎么检测元素是否隐藏• jquery可以获取图片的src属性吗
    1/1

    PHP中文网