类的jquery淡出,多次运行,而不是同时运行,y?

类的jquery淡出,多次运行,而不是同时运行,y?,jquery,effects,fadeout,Jquery,Effects,Fadeout,我有一个页面,上面有几个div,比如: 默认情况下,全部显示为:无,我让用户单击以显示某张卡 每次用户单击加载卡时,我都会运行以下JQUERY: $('.carditem').fadeOut( function() {alert(1) // Animation complete show correct card $('#' + toogleID).fadeIn(); }); 让我吃惊的是,上面的警报发生了5次,而不是1次。这意味着淡出不是同时运行,而是在所有卡片项目上循环。这会产生闪烁的丑陋

我有一个页面,上面有几个div,比如:

默认情况下,全部显示为:无,我让用户单击以显示某张卡

每次用户单击加载卡时,我都会运行以下JQUERY:

$('.carditem').fadeOut( function() {alert(1)
// Animation complete show correct card
$('#' + toogleID).fadeIn();
});
让我吃惊的是,上面的警报发生了5次,而不是1次。这意味着淡出不是同时运行,而是在所有卡片项目上循环。这会产生闪烁的丑陋动画。如何使所有匹配的类同时运行?或者只在显示div的类上运行,应该只有一张卡


谢谢

如果您发出停止动画(导致偏移启动)的警报,它将按预期运行,至少在初始动画同步方面是这样的:

$('.carditem:visible').fadeOut( function() {
  $('#' + toogleID).fadeIn();
});
每个元素都独立设置动画,如果希望在最后一个元素之后设置动画,请检查是否仍有任何元素使用和设置动画,如下所示:

$('.carditem:visible').fadeOut( function() {
  if(!$('.carditem').is(':animated')) //are any still animating?
    $('#' + toogleID).fadeIn();
});

对选择器的添加是为了使只有可见的部分淡出,而不是显示/淡出所有这些部分。

这似乎不起作用$('.carditem:visible').fadeOut(函数()…由于某种原因,显示fadesOut@nobosh-你可以添加
:visible
,稍等片刻,我会更新。奇怪的是,它仍然会淡出,然后会像上面在最新JQUERY中使用的那样被支持吗?@nobosh-是的,它已经存在了一段时间了…你在隐藏元素?
.fadeOut()
完成后将设置
显示:无;
,但问题之外是否还有其他问题?