开发者社区> 问答> 正文

关于jquery的mouseover和mouseenter的具体区别

如下一段HTML

<div style="width:300px; height:300px; background:green;">
    <p style="width:100px; height:100px; background:red"></p>
</div> 
<strong></strong>

如下一段js

$(function(){
    $('div').mouseover(function(){
        $('strong').html(function(index, value){
            return value + 1;
        });
    });
}); 

鼠标从外面移入 div时,触发mouseover事件,使strong内容加1,然后移动到p时,居然也加了1;从外面移入p时,也加了1。这是为什么?
p不是在div内部吗,而且我绑定的元素是div,就算鼠标移入了p,怎么可能重新触发了div的mouseover事件?不是一直都在div里面吗?

展开
收起
吴孟桥 2016-06-02 17:16:59 2242 0
1 条回答
写回答
取消 提交回答
  • mouseenter移动进去触发一次,移动到子对象后,再移动到此对象不会触发,
    mouseover移动到对象上就会触发,不管是否从子对象移动的

     <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    <div id="dv">父div
    <div>子div</div>
    </div>
    <div id='dvlog'></div>
    <script>
    $('#dv').mouseenter(function(){$('#dvlog').append('enter<br/>')}).mouseover(function(){$('#dvlog').append('over<br/>')})
    </script>
    2019-07-17 19:25:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载