0

假设您想在按下触发大量更改的按钮后在 DOM 中没有更改 3 秒后显示警报。

通过 jQuery 获得按钮的示例:

$someButton.on('click',function(){
  setInterval(function(){
    if( noChangesSinceLastTime()){
      time += 100;  
    }
    else{
      time = 0;
    } 

    if( time == 3000){
      alert("3 seconds without changes!");
    }

  },100);
});

假设该按钮上的 click 事件有一些其他绑定,可以执行一系列用于 DOM 操作的函数。

我怎样才能实现noChangesSinceLastTime()功能?

更多关于我的具体问题

我有一个 HTML+JS+CSS 幻灯片,它可以与网络中的许多同时客户端一起使用。

当新客户加入时,他会自动被发送到其他人正在观看的当前幻灯片的开头。

我想要做的是,在它完成加载当前幻灯片之后,触发将新客户端与其他客户端同步所需的点击(因为幻灯片内的每次点击都会触发一个动画步骤,并且大多数幻灯片都有多个步骤)。

我无法在 JS 幻灯片中添加回调,因为它不是我制作的混淆 JS。

4

2 回答 2

0

这只是伪代码,但你可以尝试这样的事情:

timer = setTimeout(function(){
   alert("3 seconds without changes!");
}, 3000);

if(/*some change happens*/) {
   clearTimeout(timer);
}
于 2013-01-07T19:14:16.637 回答
0

你可以监听所有的DOM Mutatation事件,并在其中任何一个被触发时设置一个标志。

然后在间隔函数中,您可以检查该标志并执行您想要的任何逻辑。=)。

问候,

于 2013-01-07T19:33:49.027 回答