在启动setInterval之前,clearInterval对我不起作用

时间:2015-08-20 08:10:23

标签: javascript jquery

我有一个功能,可以在setInterval

中设置另一个功能
var intval;
function loadvideo(video_id)
{
    clearInterval(intval);
    var intval=setInterval(function() { callAjax(video_id); }, 3000);
}

这是函数callAjax

function callAjax(vid){
    console.log(vid);
}

当我第一次刷新浏览器时它会正常工作,但每当我调用loadvideo函数时,我会在loadvideo函数的控制台中看到2个不同的值。这意味着旧值未清除且setInterval调用callAjax功能2次。每次调用loadvideo函数时,它都会增加调用。我在这里做错了什么?

我想要做的只是更新video_id into interval when loadvideo`函数调用。

2 个答案:

答案 0 :(得分:0)

因为你在函数中使用了var关键字。此关键字定义局部变量,并将intertval设置为此局部变量,而不是通过loadvideo函数定义的全局变量。

var intval;
function loadvideo(video_id)
{
    clearInterval(intval);
    intval=setInterval(function() { callAjax(video_id); }, 3000);
}

答案 1 :(得分:0)

试试这个。

var intval;
loadvideo(178)
function loadvideo(video_id)
{     intval=setInterval(function() { callAjax(video_id); }, 1000); }
function callAjax(vid){
    console.log(vid);
    clearInterval(intval)
}
相关问题