0

.feedcontain遅延が増加した後に各 div をフェードインさせる目的で、次のコードがあります。アニメーションとフォーマットは完璧ですが、最初のパラメーターthisにキーワードを入れることができません。setTimeout()

function goFadeNow(){
    var loopdelay=250;
    $(".feedcontain").each(function() {
        setTimeout('$('+this+').addClass("appeared");',loopdelay);
        //$(this).addClass("appeared");
        loopdelay=loopdelay+250;
    });
}

5 行目と 4 行目のコメントを外すと動作しますが、遅延はありません。thisPS:通常の変数のように使用できないことはわかっています。

4

2 に答える 2

3

ポインタbind()に渡す関数もできます:this

function timeoutFunc() {
  $(this).addClass("appeared");
}

function goFadeNow(){
  var loopdelay=250;

  $(".feedcontain").each(function() {
    setTimeout(timeoutFunc.bind(this), loopdelay);
    loopdelay=loopdelay+250;
  });
}
于 2013-06-16T05:11:12.407 に答える
2
function goFadeNow(){
    var loopdelay=250;
    $(".feedcontain").each(function() {
        var $this = $(this);
        setTimeout(function () {
            $this.addClass("appeared");
        }, loopdelay);
        loopdelay=loopdelay+250;
    });
}
于 2013-06-16T05:01:10.607 に答える