1

20ミリ秒間隔など、わずかに異なる時間でアイテムのリストをクリアするためにアニメーション化したいと思います。(メッセージをクリアするときの Android 4.2 アラート画面を考えてみてください)。

addClassただし、間隔時間で配列内のさまざまな要素を取得する方法がわかりません。私はこれを試しましたが、これはjQueryを最後の要素に適用するだけです:

for item in App.itemsController.content
  jQuery('#box').delay(2000).queue (n) ->
    selector = '.' + item.objectId
    console.log selector
    $(selector).addClass('animated fadeOutRightBig')

私も試しsetTimeout()てみましsetInterval()たが、役に立ちませんでした。ありがとう。

4

1 に答える 1

2

item 変数への参照を保持するには、クロージャーを使用する必要があります。私はCoffeeScriptを使用しませんが、javascriptでこれを行います.

var box = jQuery('#box');
for (var i in App.itemsController.content) {
    var item = App.itemsController.content[i];
    (function(item) {
        box.delay(2000).queue(function() {
            var selector = '.' + item.objectId;
            $(selector).addClass('animated fadeOutRightBig');
        });
    }(item));
}

たぶん、これはCoffeeScriptで行う方法ですか? 構文を簡単に見てみました。

for item in App.itemsController.content
  do (item) ->
     jQuery('#box').delay(2000).queue (n) ->
       selector = '.' + item.objectId
       console.log selector
       $(selector).addClass('animated fadeOutRightBig')

また、ループの外で #box 要素への参照を作成する必要があります。そうしないと、プログラムは反復ごとに DOM を検索する必要があります。

于 2013-01-01T06:49:12.337 に答える