Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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_Javascript Events_Addeventlistener - Fatal编程技术网

如何通过另一个事件停止javascript进程?

如何通过另一个事件停止javascript进程?,javascript,javascript-events,addeventlistener,Javascript,Javascript Events,Addeventlistener,假设我们有一个简单的循环javascript过程 function test() { el=document.getElementById("test"); var opacity = 1; var id = setInterval(function() { opacity = opacity - 0.1; el.style.opacity= opacity; \\ if(mouseout) {clearInterval(id);} How to

假设我们有一个简单的循环javascript过程

function test() {
    el=document.getElementById("test");
    var opacity = 1;
    var id = setInterval(function() {
    opacity = opacity - 0.1;
    el.style.opacity= opacity;
    \\ if(mouseout) {clearInterval(id);} How to do this?
    if(opacity == 0) {clearInterval(id);}
    }, 500);
}

document.getElementById("test").
addEventListener('mouseover', function(){
  test();
});
当发生
moveover
事件时,该过程将启动并继续,直到达到
if条件。我们如何定义另一个
if条件
,以通过另一个事件停止进程


在当前示例中,我们如何在
mouseout
事件发生时停止进程(降低不透明度)。

在函数外部声明
id
变量。然后可以从
mouseout
处理程序调用
clearInterval(id)

请注意,您实际上并不需要
test()
函数,您可以将其内容直接放入鼠标悬停处理程序中:

var id,
    el = document.getElementById("test");

el.addEventListener('mouseover', function(){
    var opacity = 1;
    id = setInterval(function() {
       opacity = opacity - 0.1;
       el.style.opacity= opacity;
       if(opacity == 0) {clearInterval(id);}
    }, 500);
});
el.addEventListener('mouseout', function() {
   clearInterval(id);
});

在函数外部声明
id
变量。然后可以从
mouseout
处理程序调用
clearInterval(id)

请注意,您实际上并不需要
test()
函数,您可以将其内容直接放入鼠标悬停处理程序中:

var id,
    el = document.getElementById("test");

el.addEventListener('mouseover', function(){
    var opacity = 1;
    id = setInterval(function() {
       opacity = opacity - 0.1;
       el.style.opacity= opacity;
       if(opacity == 0) {clearInterval(id);}
    }, 500);
});
el.addEventListener('mouseout', function() {
   clearInterval(id);
});