0

我一直在尝试不同的方法来解决我在网站上找到的建议,但无法让它发挥作用。

需要在最后一张图像淡入之后触发一个功能,并且我找到的每个工作解决方案都是在图像淡入之前触发的,只要我单击触发 btn。这是我一直在处理的代码。希望它得到很好的解释,有人可以用这段代码或不同的路线为我指明正确的方向。

jQuery

function logosOn() {
    $('.sections img').each(function(i) {
        $(this).delay((i++) * 200).fadeTo(500, 1);
    });
}
$('#logo').click(function(){
    logosOn()           
});

HTML

<img src="logo-big.png" alt="" id="logo" />    
<div class="sections">
    <img src="logo-interiorismo.png" alt="" />
    <img src="logo-arquitectura.png" alt="" />
    <img src="logo-arte.png" alt="" />
</div>
4

2 回答 2

0

使用.promise()

$('#logo').click(function(){
    logosOn();
    $('.sections img').promise().done(foo);       
});

。承诺()

.promise([类型] [,目标])

回报:承诺

描述:返回一个 Promise 对象以观察绑定到集合的特定类型的所有操作(无论是否排队)都已完成。

于 2013-09-09T19:03:16.017 回答
0

Promise 应该在这里帮助你:

var defs = [];
$('.sections img').each(function(i) {
    defs.push( $(this).delay((i++) * 200).fadeTo(500, 1).promise() );
});

$.when.apply(null, defs).then(function() {
    // Your callback here!
});

这是一个正在运行的演示:http: //jsbin.com/UCukiN/3/edit

于 2013-09-09T19:04:22.900 回答