Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清除以前设置的间隔_Javascript_Jquery - Fatal编程技术网

Javascript 清除以前设置的间隔

Javascript 清除以前设置的间隔,javascript,jquery,Javascript,Jquery,HTML 按下easy按钮后,将启动一个事件,每秒向easy发出警报。如果我在之后按硬键,它将启动另一个事件,它将发出警报容易,难,容易,难..,但我希望它只警报当前按下的内容,因此我必须以某种方式清除上一个间隔。我该怎么做?不知何故,当按下另一个对象上的按钮时,我需要调用clearInterval,但我真的不知道如何调用。将其存储在变量中: var interval = setInterval(function(){ //your code },1000); 现在,您可以使用clearInt

HTML


按下
easy
按钮后,将启动一个事件,每秒向easy发出警报。如果我在之后按
硬键
,它将启动另一个事件,它将发出警报
容易,难,容易,难..
,但我希望它只警报当前按下的内容,因此我必须以某种方式清除上一个间隔。我该怎么做?不知何故,当按下另一个对象上的按钮时,我需要调用
clearInterval
,但我真的不知道如何调用。

将其存储在变量中:

var interval = setInterval(function(){
//your code
},1000);
现在,您可以使用clearInterval清除:

clearInterval(interval);

将其存储在变量中:

var interval = setInterval(function(){
//your code
},1000);
现在,您可以使用clearInterval清除:

clearInterval(interval);

您需要像这样存储和清除间隔

var interval;

function test(mode) {

    var asd = this;
    this.mode = mode;

    if (interval) {
        clearInterval(interval);
    }

    interval = setInterval(function () {
        alert(asd.mode);
    }, 1000);
}

您需要像这样存储和清除间隔

var interval;

function test(mode) {

    var asd = this;
    this.mode = mode;

    if (interval) {
        clearInterval(interval);
    }

    interval = setInterval(function () {
        alert(asd.mode);
    }, 1000);
}

每次单击时清除该值

 var clear=0;

    function test(mode) {
        var asd = this;
        this.mode = mode;
        clear=setInterval(function () {
            alert(asd.mode);
        }, 1000);
    }

    $(document).ready(function () {

        $('#easy').on('click', function () {
    clearInterval(clear); 
            var stuff = new test('easy');


        });
        $('#hard').on('click', function () {
       clearInterval(clear); 
            var stuff = new test('hard');


        });

    });

每次单击时清除该值

 var clear=0;

    function test(mode) {
        var asd = this;
        this.mode = mode;
        clear=setInterval(function () {
            alert(asd.mode);
        }, 1000);
    }

    $(document).ready(function () {

        $('#easy').on('click', function () {
    clearInterval(clear); 
            var stuff = new test('easy');


        });
        $('#hard').on('click', function () {
       clearInterval(clear); 
            var stuff = new test('hard');


        });

    });


一个怎么样,一个怎么样,在我的代码中我在哪里调用clearInterval?如果我把它放在其他事件中,它将无法访问它。在我的代码中,我在哪里调用clearInterval?如果我把它放在其他事件中,它将无法访问它。除了使用全局变量,没有其他方法吗?我希望它是完全面向对象的。@geogeirimiciuc您应该有一些静态的东西来控制对象之间的间隔。因此,您必须使用全局变量,或测试类静态字段,或将具有间隔的工作包装到单独的静态(帮助器)classIt需要在该函数之外,在您如何组织代码之后,由您决定,但通常建议使用IIFE(闭包)包装您的代码,以便将变量带到全局范围之外。但是
window
无论如何都是一个对象,所以从技术上讲它仍然是OOP;)@作为
test
class的静态字段的geogeirimiciuc:除了使用全局变量之外,没有其他方法吗?我希望它是完全面向对象的。@geogeirimiciuc您应该有一些静态的东西来控制对象之间的间隔。因此,您必须使用全局变量,或测试类静态字段,或将具有间隔的工作包装到单独的静态(帮助器)classIt需要在该函数之外,在您如何组织代码之后,由您决定,但通常建议使用IIFE(闭包)包装您的代码,以便将变量带到全局范围之外。但是
window
无论如何都是一个对象,所以从技术上讲它仍然是OOP;)@geogeirimiciuc作为
test
class的静态字段:gillesc的答案更好:尝试清除ID为0的间隔时(在调用第一个
setInterval
之前)会出现错误。此外,您必须在每次
新测试之前调用
clearInterval
,这不太好。@Regent您是否检查了该代码。即将出现错误。您能告诉我setInterval会发生什么吗rerurn@Regent看到这个url@Regent你知道吗?setInterval函数返回一些数字是,
setInterval
返回ID(即数字)。同样,当您将不正确的ID传递给
clearInterval
时,它也不会产生错误(如第一次单击时示例中的0)。因此,代码中唯一的问题是在创建新对象之前必须调用
clearInterval
,而ESC的答案更好:在调用第一个
setInterval
之前,尝试清除ID为0的interval可能会出错。此外,您必须在每次
新测试之前调用
clearInterval
,这不太好。@Regent您是否检查了该代码。即将出现错误。您能告诉我setInterval会发生什么吗rerurn@Regent看到这个url@Regent你知道吗?setInterval函数返回一些数字是,
setInterval
返回ID(即数字)。同样,当您将不正确的ID传递给
clearInterval
时,它也不会产生错误(如第一次单击时示例中的0)。因此,代码中唯一的问题是在创建新对象之前必须调用
clearInterval