1

次のコードは、一致するセット内の各要素でクリック機能を実行し、クリックが各要素で有効になる前にクリックを200ミリ秒遅らせることになっています。

$('.panel').each(function(){
        window.setTimeout($('a.last').click(),pdel);
        pdel += 200;
    });

それはすべて同時に起こり、タイムアウト機能は機能していません。

4

3 に答える 3

3

pdelそれぞれの外で宣言されたと思います。ただし、関数を使用する必要があります。そうしないと、メソッドsetTimeoutの結果がに渡されます。.click()setTimeout

これを試して:

var pdel = 0;
$('.panel').each(function(){
    setTimeout(function(){
        $('a.last').click();
    }, pdel);
    pdel += 200;
});
于 2012-12-31T17:43:39.287 に答える
1

ウィンドウを削除し、時間関数をjQuery関数としてリセットします。

var pdel = 0;
    $('.panel').each(function(){
        setTimeout(function(){ $('a.last').click(); },pdel);
        pdel += 200;
    });

QED

于 2012-12-31T17:43:13.593 に答える
0

$( "。panel")はこのコードで何をする必要がありますか?クラス「パネル」の要素の量についてですか?

$( "。panels")の金額を数えるだけです:

var c = $(".panels").length;
var pdel = 200;
for(var i = 0; i < c; i++) {
    window.setTimeout(function() { /* your function */ }, pdel*c)
}

そして、本当に200ミリ秒ごとに、すべてのa.last要素がクリックされることを望んでいますか。対応するものだけではありません.panelか?したがって、内部関数は次のようになります。

function() { $(".panels").eq(c).find("a.last").click() }
于 2012-12-31T17:47:07.143 に答える