Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery淡入淡出隐藏的div_Jquery_Hidden_Fadein_Fadeout - Fatal编程技术网

使用jquery淡入淡出隐藏的div

使用jquery淡入淡出隐藏的div,jquery,hidden,fadein,fadeout,Jquery,Hidden,Fadein,Fadeout,我试图在鼠标悬停时淡入淡出几个隐藏的div,但似乎发生的是div会闪烁而不是淡入淡出 最初创建div时,div是隐藏的: $(container).find('.myDiv').hide(); 然后我有两个函数,如下所示: function showDivs(container) { $(container).find('.myDiv').fadeIn('slow'); } function hideDivs(bucketContainer) { $(container

我试图在鼠标悬停时淡入淡出几个隐藏的div,但似乎发生的是div会闪烁而不是淡入淡出

最初创建div时,div是隐藏的:

$(container).find('.myDiv').hide();  
然后我有两个函数,如下所示:

function showDivs(container) {
    $(container).find('.myDiv').fadeIn('slow');
}

function hideDivs(bucketContainer) {
     $(container).find('.myDiv').fadeOut();
} 
$('.container').live('mouseover', function() {
        showDivs(this);
});

$('.container').live('mouseout', function() {
        hideDivs(this);
}); 
这一切加起来如下:

function showDivs(container) {
    $(container).find('.myDiv').fadeIn('slow');
}

function hideDivs(bucketContainer) {
     $(container).find('.myDiv').fadeOut();
} 
$('.container').live('mouseover', function() {
        showDivs(this);
});

$('.container').live('mouseout', function() {
        hideDivs(this);
}); 

如何消除这种奇怪的闪烁效应?

你能试试
鼠标移动器/mouseleave
而不是
鼠标移动器/mouseover

我猜你是在执行“活动”块

$('.container').live('mouseover', function() {
        showDivs(this);
});

$('.container').live('mouseout', function() {
        hideDivs(this);
}); 
不止一次

如果这样做,就会在DOM对象上添加许多mouseover、mouseout事件,因为jQuery不是在替换活动绑定,而是在堆叠它们

例如,如果你无意中运行了10次活动块,那么每次鼠标悬停,你的活动块('mouseover')。。。将被呼叫10次

这可能看起来像在闪烁:-)

jQuery API:


mouseover/mouseout事件类型会由于事件冒泡而导致许多麻烦。例如,在本例中,当鼠标指针移动到内部元素上时,将向该元素发送一个mouseover事件,然后向上滴到外部元素。这可能会在不合适的时候触发绑定的mouseover处理程序。有关有用的替代方案,请参阅讨论。

请给我们一个URL以查看您的页面。请在JSFIDLE上设置此URL?谢谢大家,mouseenter和mouseleave似乎可以做到这一点。是的,mouseover、mouseout和live变得有点棘手,闪烁消失了,谢谢!