我有两个div元素,div1包裹着div2,想在经过div1时显示div2,div2移开时隐藏。
$("#div1").mouseover(function(){
$(this).children().fadeIn(1000);
}).mouseout(function(){
$(this).children().fadeOut(1000);
});
这样写会触发两次mouseout方法!
最佳解决方案
主要是因为存在js冒泡问题,可以使用jquery的mouseenter和mouseleave方法。
1.mouseover与mouseenter
不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。
只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。
2.mouseout与mouseleave
不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。