javascript - 代码在指定的 setTimeout 之前执行

标签 javascript jquery

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

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

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/

相关文章:

javascript - Chrome 扩展 : Extension context invalidated when getting URL

jquery - 如果验证失败则阻止表单提交

java - 使用 ionic 构建的混合应用程序在 android 上崩溃但在 ios 上不崩溃

javascript - 如何在 JavaScript 代码中获取 XULRunner 应用程序的安装路径

javascript - 在 asp.net web api 中添加一个额外的 get 方法

jquery - 滚动到顶部功能

javascript - 如何防止将焦点放在 div 上的任何按钮、输入等上?

javascript - ajax 调用上的 CSS 在桌面上有效,但在移动设备上无效

Javascript - 在 div 中创建一系列 <a> 标签

javascript - 这段 JavaScript 是如何工作的?