标签: settimeout

setTimeout无法正常工作,我在这里遗漏了什么吗?

我知道它很基本,但我无法让它工作.它不断抛出"对象预期"错误......

 $(document).ready(function(){   
    setTimeout('showMessage()', 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery settimeout

0
推荐指数
2
解决办法
1270
查看次数

为什么setTimeout不在javascript中执行

我有一个函数睡在javascript如下:

var is_sleep = true;
function sleep(time){
  if (is_sleep){
    is_sleep = false;
    setTimeout("sleep(time)", time);
  }else{
    is_sleep = true;
  }
}
sleep(3000);
Run Code Online (Sandbox Code Playgroud)

但是它运行is_sleep = true的语句,不会运行is_sleep = false语句而不再睡眠.

有人能说出原因是什么吗?先感谢您.

javascript settimeout

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

即使等待调用函数,setTimeout也不会等待

昨天开始在CodeAcademy学习javascript,并决定我可以实际编写代码.开玩笑.在网上看了一下,找到了类似学习曲线的人,但没有一个答案解决了我的问题.

在HTML中我有4个div.3个距离左边距600px.1距离左边缘400px.

还有4个按钮.当我按下一个按钮时,我试图让相应的div在一秒钟内向左滑动,直到剩下:400px.

我以前有div跳(没有采取看起来像滑动的小步骤)到正确的位置,但从那以后打破了代码.似乎setTimeout没有等待规定的时间.我做了一些在线研究,并认为当setTimeout完成时,保证金已经继续减少到最后的休息位置.

<html>
<head><title></title>

<script type="text/javascript" language="javascript">
//<![CDATA[

var stopPositionVisible = 400;
var stopPositionHiding = 200;


function slideIn(xslide){
    slidingDivInNow = document.getElementById(xslide);

    if (parseInt(slidingDivInNow.style.left) > stopPositionVisible ) {
        slidingDivInNow.style.left = parseInt(slidingDivInNow.style.left) - 2 + "px";
        console.log(slidinDivInNow.style.left);
    }

    setTimeout(slideIn(xslide), 20);
}


//]]>
</script>
</head>
<body>

<a id="div0link" href="#" onclick="slideIn('d1');">Home</a>
<a id="div1link" href="#" onclick="slideIn('d2');">page1</a>
<a id="div2link" href="#" onclick="slideIn('d3'); ">page2</a>
<a id="div3link" href="#" onclick="slideIn('d4'); ">page3</a>

<div id="d1" style="position:absolute; left:400px; top:50px; background:black; color:white; width:200px">horizontally sliding div</div>
<div id="d2" style="position:absolute; left:600px; top:60px; background:blue; color:white; …
Run Code Online (Sandbox Code Playgroud)

javascript function settimeout

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

Jquery .removeClass在setTimeout中不起作用

所以我在悬停时出现了一个下拉导航,我试图在那里延迟以提高可用性.最初我使用的是hoverIntent,除了IE8及以下版本以外,它在任何地方都能很好地工作.

所以我试图用普通的旧Javascript来做延迟,但是setTimeout函数不会调用我的jQuery.

var J = jQuery.noConflict();

 J(".navigation li").hover(function(){J(this).addClass("hover");},function(){setTimeout("J(this).removeClass('hover');",500);});      
Run Code Online (Sandbox Code Playgroud)

当我这样设置时:

 function off(){J(this).removeClass("hover"); alert("hello");}


J(".navigation li").hover(function(){J(this).addClass("hover");},function(){setTimeout("off()",500);}); 
Run Code Online (Sandbox Code Playgroud)

警报完美但不是.removeClass函数.

我错过了什么吗?

navigation jquery hover settimeout removeclass

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

Javascript功能逐步改变

我使用本教程创建了一个基本的javascript函数,用于在给定的时间段内实现更改.

function fadetext(){ 
if(hex>0) {
hex-=11;
document.getElementById("sample").style.color="rgb("+hex+","+hex+","+hex+")";
setTimeout("fadetext()",20); 
}
else
hex=255
}
Run Code Online (Sandbox Code Playgroud)

问题1:如何通过输入变量function; 例如fadetext(element, time).我无法通过简单地用变量替换值来实现.

问题2:通过javascript逐步实现更改是标准(和正确)方法吗?对我来说,困惑在于我们fadetext()在自己的函数中使用函数.这不是超载吗?

javascript javascript-events settimeout

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

循环和计时器有什么问题?

可能重复:
Javascript for循环和setTimeout问题

我希望这个循环将#leftValue里面的html从0更改为leftValue,从0开始直到leftValue值 - 但是它将#leftvalue中的html更改为leftValue的值,而不是从0开始.

知道我做错了什么吗?

for (i=0; i<leftValue; i++)
{
    changeLeft(i);
}
function changeLeft(num)
{
    var leftTimer = setTimeout(function(){$('#leftValue').html(num+'%')},1000);
}
Run Code Online (Sandbox Code Playgroud)

javascript for-loop settimeout

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

设置和删除只读JavaScript - 无法同时执行这两项操作

所以这是我第一次尝试JavaScript(学习Java atm)而且我差不多完成了.我想要做的是:在页面刷新时从我的textarea中删除readonly,并在几分钟后将其设置为只读定时器.

所有的定时器,getElement-parts和readOnly属性似乎都在工作(最后).

JavaScript的:

<script>
//x = Timelimit in minutes, z = Time remaining alert in minutes
function timeLimit(x,z) {
    var min = 60 * 1000;
    var limit = x * min;
    setTimeout(function(){ alert("Du har " + z + " minutter igjen på prøven.") },( limit - (z * min) ));
    setTimeout(function(){ alert(x + " minutter har gått.\nTiden er slutt.") },limit);
    setTimeout(document.getElementById('testroom').setAttribute('readOnly','readOnly'),limit);
}
</script>
Run Code Online (Sandbox Code Playgroud)

这是对我的函数的调用(把它放在我的textarea下面,因为它似乎是getElement通过id找到我的textarea的唯一方法):

    <form method="post" action="insert.php" />
        <textarea name="content" id="testroom"></textarea><br>
        <input type="submit" value="Send inn for retting" />
    </form> …
Run Code Online (Sandbox Code Playgroud)

javascript readonly settimeout

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

无法停止循环功能

我正在尝试停止循环功能,但它不起作用

function ref(){
  var iin=setTimeout(ref,1000);
}

$('#start').click(function(){ ref(); });    
$('#stop').click(function(){clearTimeout(iin);});
Run Code Online (Sandbox Code Playgroud)

javascript settimeout

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

对setTimeout中的第一个参数感到困惑

我很难理解第一个参数setTimeout以及延迟参数如何影响它.

我理解的方式setTimeout是:

setTimeout(foo, don't even think about foo until x miliseconds has passed)
Run Code Online (Sandbox Code Playgroud)

但是如果我们考虑这个代码:

<div id="mine"></div>
<script type="text/javascript">

function go(){
        var myDiv = document.getElementById("mine");
        myDiv.innerHTML = "Hello World";    
}

setTimeout(go(), 2000)
</script>
Run Code Online (Sandbox Code Playgroud)

go 在没有等待2秒的情况下立即运行.

正如我之前指出的那样,setTimeout(go(), 2000)在我真正想要的时候要求返回值setTimeout(go, 2000).

坦率地说,我不明白除了"一个有效,有一个没有"之外的其他区别.为什么前者也不尊重延迟论证?

javascript settimeout

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

SetInterval不从interval开始递增

haha = 0;
function dodat(){
haha++;
code here...
}
setInterval(function(){
dodat();
}, 1500-haha);
Run Code Online (Sandbox Code Playgroud)

这很奇怪,似乎时间实际上并没有被添加到setinterval ...

这是我的代码,SetInterval在线启动57,功能dodat():

<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>

<!DOCTYPE html>

<body onkeypress="pretend();">
<span id="money">25</span>$ - <span id="lives">100</span>/100 lives
<br><br>
<span style="background-color:#2cafe4;cursor:pointer;width:1000px;height:175px;overflow:hidden;position:relative;display:block;" id="track"></span>
<br>
<span id="divthing" style="position:relative;display:block;"></span>


<script>
    money = 25;
    lives = 100;
    mycars = {};
    original = 0;

    function doofus() {
if($("div:first").offset().left > 1000){
        $("div:first").remove();
        lives = lives-1;
        document.getElementById("lives").innerHTML = lives;
}
}
haha = 0;
    function dodat() {
    haha = haha+100;
            var btn = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery settimeout setinterval

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