下面是我的代码:我希望代码行在指定的时间段后执行,但它在超时之前执行它们。
如何确保他们在执行之前等待指定的时间?
var timeout;
$('body').on('input', '.set_price', function() {
if(timeout) {
clearTimeout(timeout);
timeout = null;
}
var dInput = this.value;
var id = $(this).attr("data-id");
timeout = setTimeout(2000)
//after 2sec starts
$(this).attr("data-price",dInput);
shoppingCart.setPriceForItem(dInput,id);
displayCart();
//after 2sec ends
});
我尝试像这样在超时时进行回调,但没有成功:
timeout = setTimeout(2000,funciton(){
//after 2sec starts
$(this).attr("data-price",dInput);
shoppingCart.setPriceForItem(dInput,id);
displayCart();
//after 2sec ends
});
最佳答案
setTimeout
的正确配置文件是 setTimeout(function,milliseconds,param1,param2,...)
。在您的代码中,您将毫秒放在函数之前。试试这个:
timeout = setTimeout(function(){
//after 2sec starts
$(this).attr("data-price",dInput);
shoppingCart.setPriceForItem(dInput,id);
displayCart();
//after 2sec ends
}, 2000);
关于javascript - 代码在指定的 setTimeout 之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588458/