lue*_*emj 3 javascript jquery for-loop callback
如何在下面的for循环中的所有fadeOuts之后运行函数?
我需要做的是淡出任何可见的东西然后淡化特定的对象.由于样式要求,我的topnav和dropdown导航都是针对不同的uls,这就是为什么事情很棘手.
我不是很擅长编写我自己的脚本,所以我(希望)遗漏了一些基本的东西.
我已经尝试在功能中包装东西,但这似乎搞乱了可变范围并搞砸了我不明白的东西......
谢谢你的帮助!
$('.ksddtop').on('mouseenter', function(){
var ddtop = $(this).text();
var dd = $('.' + ddtop);
$('.ksddwrap').fadeIn();
$(dd).fadeIn();
var ksdds = $('.ksdd');
for(var i = 0; i < ksdds.length; i++) {
var ksdd = ksdds[i];
if (! $(ksdd).hasClass(ddtop) ){
$(ksdd).fadeOut();
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我了解要求,应该这样做:
$('.ksdd:not(' + ddtop + ')').fadeOut().promise().done(function(){
// all done fading!
});
Run Code Online (Sandbox Code Playgroud)
淡出所有ksdd没有ddtop该类的元素,然后在完成所有动画时执行某些操作.
更多信息:
调用.promisejQuery集合会为您提供一个promise对象,该对象将在元素集合上的所有动画完成时解析.这包括排队的动画.
如果您直接将回调函数传递给.fadeOut(),则在完成所有元素后,您将获得每个元素的回调,而不是一个回调函数.
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |