问答详情
源自:2-5 jQuery鼠标事件之mouseenter与mouseleave事件

关于mouseenter和mouseleave阻止冒泡事件

如题,测试了下,正常布局下是可以阻止冒泡事件的,可当我把代码中p元素的margin-top设成负值,并移出div框外时,在移入、出p标签时,还是会触发div上的事件,

请问这是什么原因?

此时的p也还是div的子元素啊。

  .right p{
        margin-top:-60px;
    }
    其他的没变,就是加了这条样式。


提问者:雨宮奏 2016-08-27 19:08

个回答

  • 孩纸╭别伤xin、了
    2016-09-07 10:25:03
    已采纳

    跟你打个比较残忍的例子。div相当于一个人的身体。p相当于一个人的手。你碰到那个人的任何位置,相当于触发了div。当有一天,那个人的手断了,脱离了身体,然后你碰到那个人的手,你说这个手是不是还是那个人的身体的一部分,就算它已经断了,也是那个人的。就相当于,p就算被你移出div了,可是它的本质还是属于div的。

    当那个人手没断时,你从他的身体滑动到他的手,再从他的手滑动到身体,无论怎么滑动,只要没有拿开,就只触动了一次。可是当他的手断了的时候,你要从他的身体再碰到他的手,是不是要从他身体离开,然后才能碰到他的手?这就是触动了两次他的身体,也就是触动了两次div。明白了么?

  • qq_游在梦中_0
    2016-08-28 04:36:15

    注意看老师代码................代码对div 和p 都做了mouseleave或者mouseenter事件处理