いくつかの異なる値をループしようとしています。アイデアは、ユーザーがボタンをクリックするとループの実行が開始され、実行されるとコードの一部が表示されるはずです (例ではいくつかの基本的なテキスト)。時間の値 (ミリ秒) に応じて、さまざまな情報を含む一種のダイアログを表示しようとしているため、最初は 3 秒で始まり、その直後に 2 番目が 8 秒間表示され、その後、最後のダイアログが表示されます。 2秒間実行します。
ループごとに時間が異なるように変更する必要がありました。以下の例にはキルスイッチがあり、ループを強制終了できます。誰かがこれを理解できることを願っています。私は何時間も何時間も試しました。
//プラグインオプション
step:[
{
time: 3000,
name: 'mike',
age: 30
},
{
time: 8000,
name: 'john',
age: 37
},
{
time: 2000,
name: 'jessica',
age: 25
}
]
// ループ
var timeouts = [];
$('.click').click(function(){
$.each(options.step, function(i, value){
var time = value.time;
timeouts.push(setTimeout(function(){
$('#target ul').append('<li>'+value.name+'-'+value.age+'</li>')
},time));
});
});
// リセットボタン
$('.stop').click(function(){
$.each(timeouts, function (_, id) {
clearTimeout(id);
});
timeouts = [];
});
編集: 問題は、最初の setTimeout が 3 秒後に実行されるため、ループに追加の値 (0) が必要であることです (最初の値は 0 である必要があります)。つまり、残りは近隣の値を使用します。