2014-03-27 27 views
0

我深感不解......jQuery的idletimer工程的jsfiddle,而不是在浏览器

了一两天,以前,我发布了关于使用idletimer的连接到一个元素的查询,从而使事件会或不火的活动/不存在活动的页面上的特定元素,如下所示:

$("#testme" ).on("idle.idleTimer", function(event, elem, obj){ $("#test").html("I am very idle");}); 
$("#testme" ).on("active.idleTimer", function(event, elem, obj, triggerevent){ $("#test").html("not idle");}); 
$("#testme").idleTimer(3000); 

我似乎得到这个工作:你可以看到它在http://jsfiddle.net/peterrr73/C3w7f/3工作愉快。但是,当我将相同的代码粘贴到单独的文件中并将其放到网络上时,它会失败:您可以在http://www.sd-editions.com/CantApp/index4.html处看到这一点。更让人困惑的是:您可以在http://www.sd-editions.com/CantApp/index2.html上看到托盘在连接到整个文档时正在工作。

这是怎么回事?当我进入在线无法运行的实例时,没有错误报告。

+0

您的代码在文档之前执行t就绪事件,选择器返回空对象 – webdeveloper

回答

1
  • jsfiddler运行onLoad,因此所有的身体节点被载入
  • 第一链路使用dom elements未载入
  • 第二链路将事件附加到document

这里是您的解决方案(包代码与选择器):

$(function() { 
/* your code goes here */ 
}); 
+0

是的,只是想出了这个!另一种方法是将脚本放置在闭合体标签后面,以便在将定时器添加到元素之前将其全部元素加载。这一切现在都完美无缺。这就是为什么计时器在文档上工作,而不是在元素上 - 文档在那里,所以没有问题,但元素不是。 –

+0

@彼得罗宾逊是的,你是绝对正确的 – webdeveloper

相关问题