1

jsfiddle

jQueryでスライドショーを作っています。各スライドには複数のレイヤー (スライド内のスライド) があります。すべてのアニメーションを停止する停止ボタンを追加しようとしています。私が抱えている問題は、停止ボタンが実際にスライドショーを一度クリックしたときに「時々」しか停止しないことです。ただし、ダブルクリックすると、「通常」スライドショーが停止します。すべてのアニメーションを停止するにはどうすればよいですか?

コード全体は、上記のリンクの jsfiddle にあります。

これが私がこれまでに試したことです:

$("#stop").live("click", function() {

    // tried this
    /*
    $('#'+slides['curSlide']).stop(true,false);
    $('#'+slides[ slides['curSlide'] ]['curLayer']).stop(true,false);
    */

    // tried this
    /*
    jQuery.fx.off = true;
    */

    // tried this
    /*
    $('#slides > .slide').each(function(index){
        $(this).stop(true);
        $('#'+index+' > .slideLayer').each(function(){
            $(this).stop(true);
        });
    });
    */

});
4

1 に答える 1

1

delayアニメーションをトリガーするために使用しています。ドキュメントから:

.delay() メソッドは、キューに入れられた jQuery エフェクト間の遅延に最適です。制限があるため (たとえば、遅延をキャンセルする方法は提供されません)、.delay() は JavaScript のネイティブな setTimeout 関数に代わるものではなく、特定のユース ケースにより適している場合があります。

遅延タスクをキャンセルする直接的な方法は提供されないため、遅延関数が一種の割り込み信号として取得できるフラグを設定する必要があります。

于 2013-04-24T05:04:00.810 に答える