2

私はJQUERYを学んでいて、delay()で遊んでいます。あなたに見せるためにフィドルを書きました...私がやろうとしているのは、ボタンがクリックされたとき、divの背景色を変更した後、しばらくすると、背景色が再び切り替わります。しかし、試してみると、2番目の色に切り替わり、最初の色をスキップします。

HTML:

<div class = "animation">


</div> 

<button id = "change"> Click </button>

Jqueryコードは次のとおりです。

$(document).ready(function(){
$("#change").click(function(){

    $(".animation").css("background", "blue").delay(700).css("background", "red");


    });
});

リンクは次のとおりです。

JSFiddle

4

3 に答える 3

9

delayキュー内のアイテム(アニメーションなど)に対してのみ機能します。

それ以外の場合は、通常の古いタイマーを使用します。

$("#change").click(function() {
    var $el = $(".animation");

    $el.css("background", "blue");

    setTimeout(function () {
        $el.css("background", "red");
    }, 700);
});
于 2013-01-20T05:35:33.070 に答える
4

ここでキューで遅延を使用できます

  $(".animation").css("background","blue").delay(700)
         .queue(function() {
            $(this).css("background", "red").dequeue();
   });

上記のスニペットをクリック ハンドラー内にラップします。

于 2013-01-20T06:50:10.013 に答える
0
<div id="lock"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#lock').prepend('<tr><td>hello</td><td>cool</td><td>dad</td></tr>');
        $("#lock tr").css('background-color','yellow');
    $("#lock tr")
    .delay(4000)
    .queue(function() {
        $(this).css("background-color","red").dequeue();
    })
    .fadeIn();

});

</script>

これを試して。

于 2016-06-28T11:20:29.890 に答える