Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 从另一个函数调用clear interval函数,但不传递interval变量_Javascript_Clearinterval - Fatal编程技术网

Javascript 从另一个函数调用clear interval函数,但不传递interval变量

Javascript 从另一个函数调用clear interval函数,但不传递interval变量,javascript,clearinterval,Javascript,Clearinterval,我需要从另一个函数中清除一个间隔 不传递区间变量 stop(); 但是我不能让它工作:当我调用stop()时间隔继续 我该怎么做呢?您可以简单地将类似于var interval=null位于函数外部JavaScript的开头 这都是关于变量范围的。函数内部定义的变量仅在该函数中可用。在函数或对象外部定义的变量将对所有函数全局可用 您可以简单地将类似于var interval=null位于函数外部JavaScript的开头 这都是关于变量范围的。函数内部定义的变量仅在该函数中可用。在函数或对象

我需要从另一个函数中清除一个间隔

不传递区间变量

stop();
但是我不能让它工作:当我调用
stop()时间隔继续


我该怎么做呢?

您可以简单地将类似于
var interval=null位于函数外部JavaScript的开头

这都是关于变量范围的。函数内部定义的变量仅在该函数中可用。在函数或对象外部定义的变量将对所有函数全局可用


您可以简单地将类似于
var interval=null位于函数外部JavaScript的开头

这都是关于变量范围的。函数内部定义的变量仅在该函数中可用。在函数或对象外部定义的变量将对所有函数全局可用

有一个意外的函数,它在您的函数之前就存在了。
这是全局变量/函数是邪恶的另一个证明

根据加载脚本的时间,可能会调用此函数而不是您的函数

尝试将函数放在对象中以保护名称空间:

它在StackOverflow小提琴中工作:

var i=0;
函数myFunction(){
i++;
控制台日志(i);
}
var区间=null;
间隔=设置间隔(函数(){
myFunction();
}, 1000);
变量myObject={
停止:函数(){
控制台日志(“停止”);
间隔时间;
}
};
stop
有一个意外的函数,它在您的函数之前就已经存在了。
这是全局变量/函数是邪恶的另一个证明

根据加载脚本的时间,可能会调用此函数而不是您的函数

尝试将函数放在对象中以保护名称空间:

它在堆垛溢流小提琴中工作:

var i=0;
函数myFunction(){
i++;
控制台日志(i);
}
var区间=null;
间隔=设置间隔(函数(){
myFunction();
}, 1000);
变量myObject={
停止:函数(){
控制台日志(“停止”);
间隔时间;
}
};

stop
我发现这个解决方案也能工作:

stop = function(){
    clearInterval(interval);
}

我发现这个解决方案也很有效:

stop = function(){
    clearInterval(interval);
}

假设您所检查的答案为解决方案是错误的

不管浏览器是否支持以编程方式加载stop命令,stop函数都无法工作

此[stop]命令是一个窗口属性,可以通过简单的变量声明或脚本中任意位置具有相同名称的函数来删除和\或覆盖

无法(从外部)调用停止函数的原因是,它是一个闭包

问候

p、 s: 把它放在全球范围内会让它发挥作用


假设您所检查的答案为解决方案是错误的

不管浏览器是否支持以编程方式加载stop命令,stop函数都无法工作

此[stop]命令是一个窗口属性,可以通过简单的变量声明或脚本中任意位置具有相同名称的函数来删除和\或覆盖

无法(从外部)调用停止函数的原因是,它是一个闭包

问候

p、 s: 把它放在全球范围内会让它发挥作用



可能重复你的意思是它不工作。你能提供一个你想要的代码的最小的可运行的例子吗fix@RegisPortalez请查看我的更新“不工作”是什么意思?是因为它在
onload
函数中,而您是从其他地方调用它,所以不能调用
stop()
?你的问题仍然不是100%清楚。可能重复你的意思是它不工作。你能提供一个你想要的代码的最小的可运行的例子吗fix@RegisPortalez请查看我的更新“不工作”是什么意思?是因为它在
onload
函数中,而您是从其他地方调用它,所以不能调用
stop()
?你的问题仍然不是100%清楚。它对我不起作用,请你展示一下应该如何做?看看JSFIDLE代码,我现在看到了问题所在。由于正在使用
onClick=”“
调用
stop()
函数,因此作用域正在更改。在按钮上使用事件侦听器效果更好。这是原始JS,使用jQuery更容易。我不能用addEventListener@neoDev:当然可以。它对我不起作用,请你展示一下应该如何做。看看JSFIDLE代码,我现在看到了问题所在。由于正在使用
onClick=”“
调用
stop()
函数,因此作用域正在更改。在按钮上使用事件侦听器效果更好。这是原始JS,使用jQuery更容易。我不能用addEventListener@neoDev:当然可以。刚刚尝试将函数放入对象中,但无法工作。对我来说,这是一个JSFIDLE错误。找到了一个解决方法我找到了一个更简单的方法,请看我自己的回答刚才尝试将函数放入对象中,但不起作用。对我来说,这是一个JSFIDLE错误。找到一个解决方法,找到了一个简单的方法来做,请看我自己的答案也让我感到奇怪,当我决定看看我是否能回答这个问题时——它显示在最近的5个问题的前五位。当我写我的答案时,所有其他的答案都显示在50分钟前,当我被圣奥夫拦住的时候。从张贴小提琴没有提供一些代码内的答案正文,并最终张贴它-我的答案显示只有2分钟晚,与此相比。我也很困惑。可能是我手机上的现金故障
var i=0;
function myFunction(){
    i++;
    $('i').html(i);
}

interval = null;

interval = setInterval(function(){
    myFunction();
}, 100);

stop = function(){
    clearInterval(interval);
}