标签: settimeout

我的第一个jquery插件:需要提示做得更好+超时问题

我正在构建我的第一个jquery插件,并希望有一些提示可以做得更好.我的代码中也有一个错误,我想摆脱它.我正在尝试通过我的ajax成功回调中的setTimeout刷新我的小部件的内容.它正在工作(没有参数)但我喜欢传递这样的论点

setTimeout(refresh(o.refresh), 5000);
Run Code Online (Sandbox Code Playgroud)

我不确定它是那样做的,但我遵循了我的直觉.我在firebug中有以下错误

无用的setTimeout调用(参数周围缺少引号?)

我不明白这个错误,因为提供给refresh函数的参数是一个变量.我需要传递一个参数来查看事件是由用户双击(窗口小部件切换打开)还是通过setTimeout方法触发(窗口小部件是打开的,所以不需要关闭它).我不确定我想做的事情是否可能.我可以通过为刷新选项添加​​条件ajax调用来解决我的问题,但我不想要重复的代码.希望任何人都可以给我一些提示'n'提示,不仅是因为我的错误,而且一般(插件开发).作为一个jquery启动器,我不确定我的代码是否传统.

和平

        /**
 * @author kasperfish
 */
(function($){
    $.fn.extend({

    widgetIt: function(options) {

        var defaults = {
            title: 'Widget Title',
            load:'',
            top: '50px',
            left: '400px',
            width: '500px',
            afterLoad: function(){},
            reload:false,
            refresh:true
        };

        var options = $.extend(defaults, options);
        var o=options;

        return this.each(function() { 

              var container=$(this).css({'z-index':3, display:'inline-block',position:'absolute',top:o.top,left:o.left,'max-width':o.width})
                            .addClass('widget_container');
              var header = $('<div></div>')
                            .addClass('ui-widget-header widgethead')
                            .css({'min-width':'130px'});

              var title =$('<div></div>').addClass("w_tit").html(o.title);
              var content =$('<div></div>')
                           .addClass("w_content")
                           .hide();


              //append
              $(title).appendTo(header) ;
              $(header).appendTo(container) ;
              $(content).appendTo(container) ;

              //make draggable
              $(container).draggable({
                cancel: 'input,option, select,textarea,.w_content',
                opacity: 0.45, …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-plugins settimeout

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

Javascript如何在迭代列表操作中使用setTimeout?

我想做这样的事情:

for(var i=0;i<aList.length;i++)
{
    aList[i].doSomething();
    sleep(500);
}
Run Code Online (Sandbox Code Playgroud)

当然,javascript中没有睡眠功能所以我尝试了以下内容:

for(var i=0;i<aList.length;i++)
{
    setTimeout(function(){
        aList[i].doSomething();
    },500);  
}
Run Code Online (Sandbox Code Playgroud)

但是,现在它说没有定义aList [i].由于匿名函数是一个闭包,它实际上是从外部函数的范围读取aList [i],因此在运行setTimeout中的函数时,i已经发生了变化.

有什么方法可以实现这个目标?

javascript closures anonymous-function settimeout

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

setTimeOut无法正常工作?

可能重复:
setInterval()中的函数无延迟地执行

我试图每隔X几毫秒使用setTimeOut来调用calla函数,但它似乎只是吓坏了,无论我设置的时间范围如何都非常快?难道我做错了什么?

var Count = 0;
var GameRunning = 0;

var lblTimer = Titanium.UI.createLabel({
    color:'#999',
    text:'I am Window 1',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto',
    height: 25,
    top: 25
});

var btnStartGame = Titanium.UI.createButton({
   title: 'Start',
   width: 50,
   height: 25,
   top: 75
});

function RunGame () {
  Count++;
  lblTimer.text = Count;
  x = setTimeout(RunGame(), 100000);
}

function StartGame () {
  if(GameRunning==0)
  {
    GameRunning = 1;
    RunGame();
  }
    else
  {
    // Stop the game.
    GameRunning = 0;
    Count = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript mobile settimeout titanium setinterval

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

为什么在setTimeout()发生超时之前调用我的函数?

这似乎不对,但这就是Firefox似乎在行动的方式.

setTimeout(print(),5000);
function print(){
    console.log(1);
}
Run Code Online (Sandbox Code Playgroud)

在5秒钟之前,在单击链接之后并且在下一页开始渲染之前,将向控制台打印1.有任何想法吗?谢谢!

编辑:重新命名,以显示示例代码中存在错误,而不是firefox行为.

javascript firefox settimeout

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

一段时间后重复执行函数的好模式是什么?

使用setInterval/setTimeout,如何确保我的函数FINISH在等待一段时间后再执行,然后再执行,然后等待,等等.谢谢.

javascript settimeout setinterval

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

为什么这个简单的脚本永远不会结束

我有一个简单的JavaScript函数,如下所示:

countDown();

function countDown() {

  var count = 10;

  document.write(count);

  if (count > 0) {
    count = count-1;;
    setTimeout(countDown, 1000);
  }

}
Run Code Online (Sandbox Code Playgroud)

为什么变量count永远不会改变?这个功能永远不会结束 ..

javascript function settimeout

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

在setTimeout中调用相同的函数

我有一个执行ajax GET请求的函数,它返回成功或错误响应.在成功响应中,我再次调用相同的功能,但在2秒后.为此,我有以下代码.

function check_something()
  $.ajax({
    type: 'GET',
    url: '/something',
    success: function(data){
      setTimeout(check_something(),2000);
    },
    error: function(response) {
      if(response.status == 401){
        //do something else
      }
    }
  });
};


$(function(){
   check_something();
});
Run Code Online (Sandbox Code Playgroud)

但是从网络控制台日志和服务器日志看起来,"/ something"的请求速度超过2秒.我看到请求在10或12毫秒后传入.

一段代码有什么问题?

javascript settimeout

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

在for循环中使用setTimeout

我需要在for循环中获取此代码.所以我不必写4次,我只是无法使其工作.

setTimeout(
    function(){
        document.getElementById("square").style.left="0px";
    },0);

setTimeout(
    function(){
        document.getElementById("square").style.left="100px";
    },1000);

setTimeout(
    function(){
        document.getElementById("square").style.left="200px";
    },2000);

setTimeout(
    function(){
        document.getElementById("square").style.left="300px";
    },3000);
Run Code Online (Sandbox Code Playgroud)

我到目前为止的回答是这样的

for (i = 0; i <=300; i=i+100) {
    j = i*10;
    setTimeout(
        function (){
            document.getElementById("square").style.left=i+"px";
        }, j);
};
Run Code Online (Sandbox Code Playgroud)

javascript settimeout

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

为什么for循环中定义的变量在setTimeout函数中不可见?

当我在控制台中运行以下代码时:

for(var k = 0; k < 36; k++){
    setTimeout(function(k){ alert(k)}, k*5000);
}
Run Code Online (Sandbox Code Playgroud)

警报显示未定义.此外,我希望在每次迭代后增加超时功能的延迟; 但这不会发生.超时功能应在5秒后首先运行,然后在10秒后再运行15秒,依此类推.

为什么未定义警报,为什么在每次迭代后没有延迟增加?

由于k在本地超时功能范围内,它应该在其内部可见.

javascript scope for-loop function settimeout

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

JavaScript:循环中的setTimeout仍然不起作用

我需要创建一个脚本,它将发送请求(数组中的数据)连续发送到服务器并获得响应,但我还需要在第5或第6次迭代之间进行延迟(大约3-5秒).例如:

1st data
2nd data
3rd data
4th data
5th data
** 5sec. delay - wait here**
6th data
7th data
...etc...
Run Code Online (Sandbox Code Playgroud)

发送和接收数据没问题,但是我无法在我的代码中正确实现setTimeout以便完全按照我的需要工作.

非常感谢大家,他们将能够修复此代码.

<!DOCTYPE html>
<html>
<body>

<h2>AJAX</h2>

<button type="button" onclick="loadDoc()">Request data</button>

<p id="demo"></p>

<script>
function loadDoc() {
    var xhttp = [];



    var code = [
"WOICEL0Q9P",
"ZJTS4GYJEJ",
"HJPMQOCX31",
"MP26N0BH01",
"7TJNYZIRJR",
"Z5MIDDG4N2",
"BX6MKYK0O7",
"KVFVH1ESQX",
"40ADY3ZBE5",
"V4NT360JR5",
"FDI8AFL680",
"ZH89N59XQR",
"M6OS2OX38H",
"D8O76YDLM0",
"86GBMJLIXY",
"1QRFVU26VK",
"HFUI9QV6DY",
"VN83OGR825",
"DDMPCBX2MF",
"2M3QFPI234"
    ];

    var i = code.length;
    var j = code.length; …
Run Code Online (Sandbox Code Playgroud)

javascript while-loop settimeout

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