页面更改时是否有jQuery事件?

时间:2011-11-01 20:28:03

标签: jquery onchange

我是Jquery的初学者,并试图习惯它。是否有任何事件可以绑定到页面以停止我的滑块计时器?

我想要做的是,当用户更改页面或转到另一个标签页时,我想要抓住该事件。该系统是否有任何事件或监听器?

3 个答案:

答案 0 :(得分:2)

我会使用onbeforeunload代替unload,以便为您提供最长时间。但是,如果您计划此时向服务器发出请求(或异步执行任何操作),您可能会发现自己处于竞争状态,有时请求会通过,有时则不会。

这是因为页面在卸载时停止处理您的请求(或其他异步操作)。这几乎可以立即在现代浏览器中使用,并且在旧版IE中相当快。因此,在任何unloadbeforeunload事件中执行某些操作很少有意义。

如果您尝试将计时器信息传递到下一个网址,则可能只需在点击网址时修改网址。

$('a').click(function(){ this.href=this.href + "#timer=" + timerVar; });

然后,当你到达下一页时,你可以从网址读取最后一个值。

Google Analytics通过向所有链接添加延迟来解决此问题:

$('a').click(function(){
  var that = this;
  setTimeout(function(){
    window.location=that.href;
  },100); 
  return false;
});

这只会让您的页面有更多时间来关注链接。虽然这并不是万无一失,但这对谷歌来说并不重要,因为分析有些短暂(而且他们也将url params用于其他更重要的事项(例如广告系列))。

答案 1 :(得分:1)

答案 2 :(得分:0)

http://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/这篇博文可以帮助你解决这个问题。