我是jquery的初學者,並試圖去適應它。是否有任何事件可以綁定到頁面來停止我的滑塊計時器?頁面更改時是否有jQuery事件?
我想要做的是,當用戶更改頁面或轉到另一個選項卡時,我想捕獲該事件。有沒有這個系統的事件或監聽器?
我是jquery的初學者,並試圖去適應它。是否有任何事件可以綁定到頁面來停止我的滑塊計時器?頁面更改時是否有jQuery事件?
我想要做的是,當用戶更改頁面或轉到另一個選項卡時,我想捕獲該事件。有沒有這個系統的事件或監聽器?
我會去與onbeforeunload
代替unload
爲了給你最大的一次。但是,如果您計劃在此時向服務器發送請求(或者異步執行任何操作),則可能會發現自己處於競爭狀態,有時請求會通過該請求,有時不會。
發生這種情況是因爲頁面在卸載時停止處理您的請求(或其他異步操作)。這在現代瀏覽器中幾乎可以立即使用,而在較早的IE中則相當快。正因爲如此,在unload
或beforeunload
事件中的任何事情上做某事都很有意義。
如果您嘗試將計時器信息傳遞給下一個網址,那麼您可能只需點擊它們就可以修改網址。
$('a').click(function(){ this.href=this.href + "#timer=" + timerVar; });
然後當你到下一個頁面,你可以閱讀從URL中的最後一個值。
谷歌分析加入延遲到各個環節解決了這個問題:
$('a').click(function(){
var that = this;
setTimeout(function(){
window.location=that.href;
},100);
return false;
});
這只是給你的頁面額外的時間來跟蹤鏈接。雖然這並非萬無一失,但對谷歌來說並不重要,因爲分析有些短暫(並且它們還將url params用於其他更重要的事情(例如廣告系列))。
感謝您的回答。但我想你讓我錯了。我通過jQuery製作了一個簡單的滑塊。它有一個計時器。我想要做的是,停止計時器,如果用戶轉到另一個選項卡,另一個站點或轉到其他瀏覽器。我想捕捉像許多OOP這樣的事件,讓你通過「專注於」或「專注」來控制這些事件。但是當我閱讀jQuery文檔時,他們將焦點用於不是整個頁面本身的元素。也許我錯了。就像我說的我是jQuery的初學者。 – zbgokalp
我的答案解決了如何停止計時器,然後將信息發送到您網站上的下一頁。然後,您可以在新頁面加載時繼續處理該事件。 –
據我瞭解(糾正我,如果我錯了)此代碼發送當前時間「我的」其他頁面。但是我想要做的是在用戶「關注」其他事情時捕捉事件。一些其他網站一些其他瀏覽器,本地文件任何東西..只是當用戶「關注」我的網頁。也非常感謝你給予答案,並試圖幫助 – zbgokalp
http://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/這篇博客文章應該可以幫助您在這個..
我也試過這種方法..其實這對我來說更有意義。 Javascript比jQuery更容易,但仍然沒有觸發。 – zbgokalp
感謝薩姆,但它不是觸發,因爲它說。我的意思是我試圖改變頁面,使用後退和前進按鈕。但它並沒有觸發你提供的鏈接上的樣本。我是否需要添加更多代碼? – zbgokalp
如果您在查看這些事件時遇到問題,那是因爲它們會觸發,然後控制檯清除以顯示新的頁面。大多數控制檯(firebug和webkit)都有一個選項,可以在頁面卸載後不清除舊日誌。你需要使用這些設置。 –
Chrome和Safari等現代Webkit瀏覽器不支持此卸載方法。 – Exception