下面是我的代码:我希望在指定的时间段后执行代码行,但是在超时之前执行它们。
如何确保他们在执行前等待指定的时间?
v1.3x
我尝试在超时时进行回调,但无济于事:
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
});
答案 0 :(得分:2)
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);
答案 1 :(得分:1)
setTimeout()函数具有以下形式
setTimeout(function(){ alert("Hello"); }, 3000);
您的代码:
timeout = setTimeout(function(){
//after 2sec starts
$(this).attr("data-price",dInput);
shoppingCart.setPriceForItem(dInput,id);
displayCart();
//after 2sec ends
},2000);
答案 2 :(得分:1)
这个怎么样?
$(this).attr("data-price",dInput);
shoppingCart.setPriceForItem(dInput,id);
setTimeout(function(){ displayCart(); }, 2000);