如题,测试了下,正常布局下是可以阻止冒泡事件的,可当我把代码中p元素的margin-top设成负值,并移出div框外时,在移入、出p标签时,还是会触发div上的事件,
请问这是什么原因?
此时的p也还是div的子元素啊。
.right p{ margin-top:-60px; } 其他的没变,就是加了这条样式。
跟你打个比较残忍的例子。div相当于一个人的身体。p相当于一个人的手。你碰到那个人的任何位置,相当于触发了div。当有一天,那个人的手断了,脱离了身体,然后你碰到那个人的手,你说这个手是不是还是那个人的身体的一部分,就算它已经断了,也是那个人的。就相当于,p就算被你移出div了,可是它的本质还是属于div的。
当那个人手没断时,你从他的身体滑动到他的手,再从他的手滑动到身体,无论怎么滑动,只要没有拿开,就只触动了一次。可是当他的手断了的时候,你要从他的身体再碰到他的手,是不是要从他身体离开,然后才能碰到他的手?这就是触动了两次他的身体,也就是触动了两次div。明白了么?
注意看老师代码................代码对div 和p 都做了mouseleave或者mouseenter事件处理