如何在鼠标进入和离开div时分别执行对应函数?
解决jQuery hover事件不生效的问题
嘿,刚接触jQuery一个月遇到这种问题太正常啦!我来帮你排查下问题,顺便给你正确的实现方式~
首先,你的代码没生效大概率是两个常见原因:
- 代码在DOM元素还没加载完成的时候就执行了,导致
$("#test")找不到对应的div,自然绑定不上hover事件 - 可能你没正确引入jQuery库(不过你提到用了
.hover(),大概率是前者)
另外,.hover()方法其实可以接受两个函数参数,分别对应鼠标进入和离开的操作,刚好符合你的需求。
给你一个完整的可运行示例:
<!-- 给div加个样式,确保它可见,不然悬停了也没反应 --> <div id="test" style="width: 200px; height: 200px; background-color: #eee;"></div> <!-- 先引入jQuery库,必须在你的代码之前 --> <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script> // 等待DOM加载完成后再执行代码,这一步非常关键! $(document).ready(function() { $("#test").hover( // 第一个函数:鼠标悬停(进入)时执行 function() { window.alert("鼠标悬停啦!"); }, // 第二个函数:鼠标离开时执行 function() { window.alert("鼠标离开啦!"); } ); }); </script>
关键要点解释:
- 必须引入jQuery库:所有jQuery语法都依赖这个库,而且要放在你的自定义代码前面
- $(document).ready():这是jQuery用来确保DOM完全加载的方法,只有等页面上的所有元素都渲染完成后,
$("#test")才能找到目标div,事件绑定才会生效 - hover的两个函数:第一个是
mouseenter事件的处理逻辑,第二个是mouseleave的,完美对应你要的“悬停执行A,离开执行B”的需求
如果之前的代码没加$(document).ready(),加上之后应该就能正常工作啦!如果还是有问题,可以检查下浏览器控制台有没有报错,比如jQuery没加载成功之类的~
内容的提问来源于stack exchange,提问作者Recoding
相关产品推荐
相关产品推荐

