0

これは私のjavascriptです

$(document).ready(function(){
        $('.frontpageimg').click(function(){
            $(this).data('clicked', true);
        });
        if('.frontpageimg').data('clicked') {
            $('#imagepos').slideUp(2000).fadeOut(2000);
            $('#contentpos').slideUp(2000).fadeIn(2000);
        } else {
            $('#imagepos').delay(8000).slideUp(2000).fadeOut(2000);
            $('#contentpos').delay(8000).slideUp(2000).fadeIn(5000);
        }
    });

Web サイトはアニメーション化され、遅れてメイン コンテンツが表示されます。これは本来の動作です。ただし、ユーザーが待機をスキップして、画像をクリックすることで短いアニメーションをアクティブにできるようにしたいと考えています。現在、「else」部分の下のすべてが機能しますが、画像をクリックしても何も起こりません。

編集:私は物事を機能させるためにコードを変更しましたが、それでも私が望んでいることはしません。

$(document).ready(function(){
        $('#imagepos').delay(8000).slideUp(2000).fadeOut(2000);
        $('#contentpos').delay(8000).slideUp(2000).fadeIn(5000);    
    });
    $('#frontpageimg').click(function(){
                $('div:animated').stop();
                $('div:animated').clearQueue();
                $('#imagepos').slideUp(2000).fadeOut(2000);
                $('#contentpos').slideUp(2000).fadeIn(2000);
            });
4

1 に答える 1

3

動作を変更しようとしている関数 (シングル スレッド環境で 1 回だけ呼び出される) 内でクリック ハンドラーをバインドしています。

cluck ハンドラーからアニメーション シーケンス (まだ実行中の場合) をキャンセルまたは変更することをお勧めします。代わりに、アニメーション シーケンスをチェックして、ボタンがクリックされたかどうかを確認することもできます。

于 2012-08-29T22:42:30.393 に答える