代码在指定的setTimeout之前执行

时间:2016-04-13 04:15:49

标签: javascript jquery

下面是我的代码:我希望在指定的时间段后执行代码行,但是在超时之前执行它们。

如何确保他们在执行前等待指定的时间?

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
        });

3 个答案:

答案 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);