Javascript 元素上的Jquery idletimer在JSFIDLE中工作,而不是在浏览器中

Javascript 元素上的Jquery idletimer在JSFIDLE中工作,而不是在浏览器中,javascript,jquery,idle-timer,Javascript,Jquery,Idle Timer,我深感困惑 大约一天前,我发布了一个关于使用附加到元素的idletimer的查询,以便在页面上某个特定元素的活动/缺少活动时触发事件,如下所示: $("#testme" ).on( "idle.idleTimer", function(event, elem, obj){ $("#test").html("I am very idle");}); $( "#testme" ).on( "active.idleTimer", function(event, elem, obj, trigger

我深感困惑

大约一天前,我发布了一个关于使用附加到元素的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);
看来我已经成功了:你可以看到它在我的电脑里运行得很愉快。但是,当我将相同的代码粘贴到一个单独的文件中并将其放到web上时,它失败了:您可以在上看到这一点。让事情变得更令人费解的是:您可以看到,当附加到整个文档时,惰轮正在工作

发生了什么事?当我转到联机不工作实例时,没有报告错误。

  • jsfiddler运行
    onLoad
    ,因此所有主体节点都被加载
  • 第一个链接使用未加载的
    dom元素
  • 第二个链接将事件附加到
    文档
这是您的解决方案(使用选择器包装代码):


您的代码在document ready事件之前执行,选择器返回空的objectsYep,就这样!另一种方法是将脚本放在结束正文标记之后,以便在向元素添加计时器之前加载整个正文及其所有元素。现在这一切都很有道理。这就是为什么计时器在文档上工作,而不是在元素上工作——文档在那里,所以没有问题,但是元素没有。
$(function() {
/* your code goes here */
});