【问题标题】:Reset jquery setTimeout after second Click on Button第二次单击按钮后重置jquery setTimeout
【发布时间】:2018-03-02 12:00:30
【问题描述】:

我遇到了一个浪费越来越多时间的问题。现在我想请你们帮助我。我真的认为这不是什么大事,但我找不到解决方案:

我有两个代码 sn-ps,都非常相似:

$(function () {

    $('.plus--article').on('click', function () {
        var $qty = $(this).closest('form').find('input[name="sQuantity"]');
        var currentVal = parseInt($qty.val());
        if (!isNaN(currentVal)) {
            $qty.val(currentVal + 1);

            $('.change-quantity--form').submit(function (e) {
                var form = this;
                e.preventDefault();
                var timeout = setTimeout(function () {
                    $.overlay.open();
                    form.submit();
                }, 2000);
            });
        }
    });

    $('.minus--article').on('click', function () {
        var $qty = $(this).closest('form').find('input[name="sQuantity"]');
        var currentVal = parseInt($qty.val());
        if (!isNaN(currentVal) && currentVal > 0) {
            $qty.val(currentVal - 1);
            window.clearTimeout(timeout);

            $('.change-quantity--form').submit(function (e) {
                var form = this;
                e.preventDefault();
                setTimeout(function () {
                    $.overlay.open({
                        closeOnClick: false
                    });
                    form.submit();

                }, 2000);
            });
        }
    });

});

我只想在单击其中一个按钮后重置超时。

【问题讨论】:

  • window.clearTimeout(超时);那里无法访问“超时”。
  • var timeout 可以在$(function () { 之后立即声明,然后在需要的地方使用超时变量

标签: javascript jquery settimeout reset


【解决方案1】:
var time;

}, 2000); 使用这个-> }, time);

$(".test").on("click", function(){
   time = 0;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多