昨天在写js的时候发现了一个很是蛋疼的问题,就是对div使用mouseout事件的时候,事件的效果会传递给它的子元素。
举个栗子:
js
$(function(){
$("#wrapper").mouseout(function(){alert('hello')});
});
此时就有一个很是蛋疼的问题,如果鼠标从wapper里面移到p上面的时候出触发mouseout事件,并且在鼠标离开p的时候,还会触发mouseout事件,这么一个蛋疼的问题很是困扰了我一段时间。
通过网络找到了一些比较好的答案
原生态javascript解决方案:摸我,@zbm2001z的解决方案写的很好.
@zbm2001z主要用了事件过程中目标对象的问题,同时还兼容了IE以及ff,webkit浏览器。
jquery的话,在1.3的时候新增了一个mouseleave事件,用它可以解决这个问题,同时新增加了一个mouseenter的对应时间,详细内容:摸我
最后记录各很不错的写法,var a = b || c,那么a到底是等于b还是c呢,测试的时候发现,如果b为undefined,null,false的时候,值为c,但是如果b为定义,那么代码无效。