jquery - 杀死不需要的超时?

标签 jquery

基本上我做了一种运气旋转游戏。

当您单击按钮 ID“提交”时,它将执行以下操作:

function loadLuck() {
    $("#luck").html('<img src="http://i.imgur.com/HSIICHd.gif" /> Please wait...');

    setTimeout(function() {
        $.post('ajax.php', {getLuck : '1'}, function(data) {
            $("#luck").html(data);
        });
    }, 1500);
}

基本上从 php 页面加载结果。

但如果我多次点击它,它将生成新的结果,与我点击的次数相同。

那是因为设置了超时。

如何每次只启用 1 次超时?

最佳答案

使用clearTimeout函数:

var timeoutID = '';

function loadLuck() {
    clearTimeout(timeoutID);
    $("#luck").html('<img src="http://i.imgur.com/HSIICHd.gif" /> Please wait...');
    timeoutID = setTimeout(function() {
        $.post('ajax.php', {getLuck : '1'}, function(data) {
            $("#luck").html(data);
        });
    }, 1500);
}

关于jquery - 杀死不需要的超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17015556/

相关文章:

jquery - Bower - 如何仅安装 jquery.js 而不是整个包?

jquery - 无法在expressjs中安装jQuery文件上传

javascript - 当单击 jquery 'right' 按钮时,如何设置此 div 的动画以向左滑动?

javascript - jcors-loader.js 在 IE7 中不起作用

javascript - 几秒钟后检查文档的 scrollTop()

javascript - CSS 不称职 - 无法弄清楚为什么我的页面呈现这样的方式

javascript - 用红色突出显示负数

javascript - JQuery 动画设置超时

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

javascript - 将 URL 参数从一个页面传递到另一个页面