私はこれについて頭を包むことができませんか?
それが私の理由:
ループごとに 1000 ミリ秒ずつ内部で処理を停止しているにもかかわらず、.each ループが正常に実行されるのはなぜですか?
問題は、setTimeoutが終了する前にwindow.location.href コマンドがTO EARLYで実行されることです。早期に終了する stopload() 関数についても同じですか? 再帰的な setTimeout 関数について何かを見たことがありますが、ここで必要なものと、それをどのように実装するかということです。
function shop(clickedButton)
{
var buttonvalue = $(clickedButton).val();
startLoad();
pdel = 1000;
$("input:submit[value='buy']").each(function(index)
{
if(index != 1)
{
$("#backgroundPopup").text(index);
var submithing = this;
setTimeout(function(){ clicksubmitbutton(submithing); },pdel);
pdel += 1000;
}
});
stopLoad();
if(buttonvalue == "1")
{
window.scrollTo(0,0);
}
else
{
window.location.href = 'http://my.url';
}
}