假设我想用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中的嵌套函数返回值
但它并没有真正帮助我(或者我太愚蠢了).
我的变量范围以某种方式关闭,我不明白为什么.我的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) 我已经创建了一个在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/
我使用以下代码隐藏并每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
我在下面有以下代码(注意,我稍后会在循环中添加更多代码,但我需要首先使用它):
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不知何故超出范围?循环如何使超时脱轨?
我有一个数组s=[John; Alex; Mark],我想逐个延迟地显示这个数组的元素.
for (var i=0; i<=3; i++)
{
setTimeout(function(){x.innerHTML=s[i]},3000)
}
Run Code Online (Sandbox Code Playgroud)
这似乎很简单的问题,但我无法弄清楚.
我有一个名为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.
试着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不是我最强的领域.
完全卡住了。
我已经看到了这种流行的解决方案,可以在循环的迭代之间添加延迟(/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的值,会发生不同的动画)。
我有两种功能,一种是通过单击开始按钮触发的
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 ×10
settimeout ×10
setinterval ×3
jquery ×2
callback ×1
css3 ×1
for-loop ×1
foreach ×1
html5 ×1
nested ×1
recursion ×1
scope ×1
this ×1