0

サイトで見つかった提案を使用して、問題に対してさまざまなアプローチを試みてきましたが、うまくいきませんでした。

トリガーボタンをクリックするとすぐに、最後の画像がフェードインし、画像がフェードインする前に見つかったすべての有効なソリューションがトリガーされた後に関数をトリガーする必要があります。これは私が取り組んできたコードです。それが十分に説明されていることを願っており、誰かがこのコードを使用するか、別のルートに進むかのいずれかで、私を正しい方向に向けることができます。

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

約束はここであなたを助けるはずです:

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 に答える