mouseover、mouseout事件引起的阻止事件冒泡失效

    这两天在写一个类似京东商品目录导航时遇到了一个问题,给外层父盒子绑定了mouseover、mouseout事件,但是我不想让它里面的子元素触发,于是使用了常规的event.stopPropagation();及return false来阻止冒泡,但是都不起作用。

    看了一些关于JQ的hover方法与mouseenter、mouseleave、mousemove、mouseover、mouseout 之间的关系的文章后才发现:与 mouseenter 事件不同,不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。

    放弃使用mouseover、mouseout事件,改为hover或者mouseenter、mouseleave,这样才解决了我的问题,或者就是根据每次触发的事件判断是否为目标元素,如果不是则不执行函数,但无疑那样有些麻烦了,对性能也有影响。

你可能感兴趣的:(JavaScript)