标签: settimeout

javascript中的递归函数,setTimeout和'this'关键字

假设我想用onClick方法调用一个函数.像这样:

<li class="inline" onclick="mve(this);" >TEMP</li>
Run Code Online (Sandbox Code Playgroud)

我有一个JS函数,如下所示:

function mve(caller){
caller.style.position = "relative";
caller.style.left = (caller.style.left+20) +'px';
var foo = setTimeout('mve(caller)', 2000);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是在初始onClick调用之后,元素(调用者引用的)是未定义的.至少这是Firebug告诉我的.

我确信这是一个简单的解决方案,那么如何简单解释为什么以及如何解释?

如果我像这样运行它:

function mve(caller){
caller.style.position = "relative";
caller.style.left = (caller.style.left+20) +'px';
}
Run Code Online (Sandbox Code Playgroud)

我认为元素在每次点击时都会移动20px,但情况并非如此.思考?

javascript recursion this settimeout

1
推荐指数
1
解决办法
2230
查看次数

javascript变量范围:从嵌套函数返回变量?

我看了一下:从Javascript中的嵌套函数返回值

但它并没有真正帮助我(或者我太愚蠢了).

我的变量范围以某种方式关闭,我不明白为什么.我的alert()没有按预期运行.试图在所有行上添加注释来解释我在想什么.

非常感谢任何评论/指点/答案!

var g = {}; / is a large object with all kinds of other stuff and functions in it

g.ding = function(){ // my problem function
 var baby = 'young'; // i thought I set a local var here
    if(someVar==true) { // standard issue if statement
        someAPI.class( // using an API that uses a function as its attribute
            function(stuff){ // my anonymous function
                baby = 'old'; // setting the var to something
            }
        );
    } …
Run Code Online (Sandbox Code Playgroud)

javascript scope nested anonymous-function settimeout

1
推荐指数
1
解决办法
2821
查看次数

非工作Javascript超时事件

我已经创建了一个在180万毫秒后运行的函数(我使用1.8秒进行测试)但是我使用的超时似乎永远不会起作用 - 尽管它与我用于其他所有网络的完全相同app/site我做过,永远.

核心代码:

setTimeout(Test, 10);

var Test = function(){
    alert("KEMAH");
};
Run Code Online (Sandbox Code Playgroud)

Jsfiddle:http://jsfiddle.net/zbMCC/1/

javascript html5 settimeout css3

1
推荐指数
1
解决办法
54
查看次数

使用clearInterval()时出错

我使用以下代码隐藏并每1秒显示一个div

$(document).ready(function(e) {
    var acc = setInterval(function(){
        $("#element").fadeOut(function(){
            setTimeout(function(){
                $("#element").fadeIn()  
            }, 1000)    
        })
    }, 200)
})

$(window).load(function(){
    setTimeout(function(){
        clearInterval(acc);
    }, 10000)
})
Run Code Online (Sandbox Code Playgroud)

clearInterval()不工作,因为它应该和我得到谷歌Chrome以下错误:

未捕获的ReferenceError:未定义acc

演示:http://jsfiddle.net/enve/4GWvM/

javascript jquery settimeout setinterval clearinterval

1
推荐指数
1
解决办法
467
查看次数

setTimeout(回调)后跟while循环从不触发

我在下面有以下代码(注意,我稍后会在循环中添加更多代码,但我需要首先使用它):

var calls_on = true;
function hunt(max, ext, duration){
    if(duration != '0' || duration != false || duration != 0){
        duration = duration * 1000; // milliseconds to delay before stopping calls
        var t=setTimeout(function(){calls_on=false;}, duration);
    }
    while(calls_on){
        alert('reached');
    }
    alert('test');
}
Run Code Online (Sandbox Code Playgroud)

我已经确认'duration'条件正在执行,并且正在设置超时句柄.但是,这个循环永远不会结束,我从来没有看到setTimeout回调被执行.当我完全删除循环时,它工作正常(因为这使它成为函数中唯一的代码).

任何帮助,将不胜感激.setTimeout不知何故超出范围?循环如何使超时脱轨?

javascript callback settimeout

1
推荐指数
2
解决办法
578
查看次数

显示延迟的数组元素

我有一个数组s=[John; Alex; Mark],我想逐个延迟地显示这个数组的元素.

for (var i=0; i<=3; i++)
  {
     setTimeout(function(){x.innerHTML=s[i]},3000)
  }
Run Code Online (Sandbox Code Playgroud)

这似乎很简单的问题,但我无法弄清楚.

javascript settimeout

1
推荐指数
1
解决办法
6605
查看次数

如何使用setTimeout或setInterval减慢循环速度

我有一个名为RotatorNames的数组.它包含随机的东西,但我们只是说它包含 ["rotatorA","rotatorB","rotatorC"].

我想遍历数组,并为每个项目我想触发一个点击事件.我有一些工作,除了一切都立即触发.如何强制循环在继续循环之前等待几秒钟.

这就是我所拥有的.

function Rotator() {
    var RotatorNames = ["rotatorA","rotatorB","rotatorC"];
    RotatorNames.forEach(function(entry){
        window.setTimeout(function() {
            //Trigger that elements button.
            var elemntBtn = $('#btn_' + entry);
            elemntBtn.trigger('click');
        }, 5000);
    });
}
Run Code Online (Sandbox Code Playgroud)

你可以运行它来查看我的问题.http://jsfiddle.net/BxDtp/ 此外,有时警报会执行A,C,B而不是A,B,C.

javascript foreach jquery settimeout setinterval

1
推荐指数
1
解决办法
4377
查看次数

JavaScript setTimeout 5秒

试着setTimeout在5秒后加载一个JS,我似乎无法让它工作; 我能在论坛上找到最接近的一个是setTimeout的问题

我在想的是这个:

<script type="text/javascript">
    function()
    {
        var load = setTimeout(redirect, 5000);
        redirect.src = src="js/load.js";
    }
</script>
Run Code Online (Sandbox Code Playgroud)

JavaScript不是我最强的领域.

javascript settimeout

1
推荐指数
1
解决办法
2万
查看次数

在双(嵌套)循环中设置延迟(超时)

完全卡住了。

我已经看到了这种流行的解决方案,可以在循环的迭代之间添加延迟(/sf/answers/250861831/),但是它似乎仅适用于单个循环(即不嵌套)。

这是伪代码,

for (var i = 0; i < max; i++){
    for (var j = 0; j < max; j++){  
        pause(1000);         // ideally would just elegantly pause all execution
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用setTimeout(除非存在其他选项!),但是我似乎无法全神贯注于如何设置它。


上下文 -它应停顿足够长的时间以使动画发生。(根据i和j的值,会发生不同的动画)。

javascript garbage-collection for-loop settimeout

1
推荐指数
1
解决办法
1657
查看次数

如何停止调用函数JS

我有两种功能,一种是通过单击开始按钮触发的

function startGame() {
  setInterval(setCellPosition, 3000);
  setTimeGame = setTimeout(startGame, 2000);
  setTime();
};
Run Code Online (Sandbox Code Playgroud)

第二个,单击重置按钮后将被调用

function resetGame() {
  scoreBox.innerHTML = "0";
  timeBox.innerHTML = "60";
  liveBox.innerHTML = "3";
  clearTimeout(setTimeGame)
};
Run Code Online (Sandbox Code Playgroud)

resetGame功能不起作用。值(得分,时间,实时)被重设,但startGame功能不会停止。如何解决?如何停止startgame功能?

javascript settimeout setinterval

1
推荐指数
1
解决办法
65
查看次数