javascript - 当变量为 "x"时查询clearInterval

标签 javascript jquery ajax setinterval clearinterval

我创建了一个函数,可以使用 AJAX 控制数据库中的某一行的某个数字。 我使用 click 函数调用该函数,并将该函数放入 setInterval 函数中,以每秒检查 10 次。

一开始它会返回 0,但在某个时刻(通常在 5 秒内)它会返回一些大于 0 的值,此时我想清除Interval。

但我不知道该怎么做?

这是我的功能:

function get_buzzer() {
$.ajax({
    url: 'ajax_buzzer.php',
    dataType: 'json',
    async: false,
    type: 'post',
    data: {
        job: 'get'
    },
    success:function(s) {
        if(s['number'] == 0) {
            var player = false;
        } else {
            var player = true;
        }
    }, error:function(e) {
    }
});
}

$(document).ready(function() {
    $('#test').click(function() {
        var buzzer = setInterval("get_buzzer()",100);
    });
});

最佳答案

你可以做类似的事情

$(document).ready(function () {
    //make buzzer a share variable
    var buzzer;
    $('#test').click(function () {
        buzzer = setInterval(get_buzzer, 100);
    });

    function get_buzzer() {
        $.ajax({
            url: 'ajax_buzzer.php',
            dataType: 'json',
            async: false,
            type: 'post',
            data: {
                job: 'get'
            },
            success: function (s) {
                if (s['number'] != 0) {
                    //if number is not 0 then clear the interval
                    clearInterval(buzzer)
                }
            },
            error: function (e) {}
        });
    }
});

关于javascript - 当变量为 "x"时查询clearInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627304/

相关文章:

javascript - 以编程方式生成 Adob​​e 文件的预览

javascript - 为什么我在下载文件时收到错误 "Error [ERR_STREAM_WRITE_AFTER_END]: write after end"?

javascript - 如何在 Typescript 中获取自动创建的 Javascript 变量?

Jquery点击功能只有在第二次点击后才起作用

javascript - Bootstrap <UL> 列表——在大量列表项上添加事件处理程序

javascript - 获取JSON返回数据

java - Spring MVC 中的多个多部分文件 - Ajax

javascript - AngularJS ng-repeat 的简单预加载器?

php - 同一页面上有两个ajax,但第二个没有得到第一个已更改的内容

javascript - 如何为动态网站编写用户脚本