2013-04-07 86 views
0

嘗試在網上尋找這個問題的答案,但我真的不知道從哪裏開始,所以我希望有人能幫助我。基本上,我有一個頁面,只是在div標籤內的鏈接集合。我想要做的是調用一個.click警報,在點擊時,警報將顯示特定鏈接被點擊的最後時間的日期,而不僅僅是今天日期的.getDate。我是否需要設置一個新的變量,每次單擊鏈接時都需要日期,然後在警報中顯示該變量?我不知道這是否可以完成,因爲我還是比較新的jQuery,所以任何幫助將不勝感激。jQuery .click警報

+1

最後點擊誰點擊? – 2013-04-07 21:41:52

+0

好吧,這是一個有爭議的問題,因爲只有一個人會使用這個特定的頁面,但總的來說,是的,上次任何人點擊都可以工作。 – 2013-04-07 21:57:09

+0

那麼你需要一個數據庫來保存最後一次點擊。這個「數據庫」可以用txt表示,但是無論你想獲得什麼,如果它在不同時間鏈接不同的用戶或同一用戶,你需要服務器端腳本。 – 2013-04-07 22:01:52

回答

0

這是真的,真的,真的不採用這種方式來存儲這類信息,但如果你想這樣做,你應該創建這兩個函數的壞習慣:

function SetCookie(cookieName,cookieValue,nDays) { 
var today = new Date(); 
var expire = new Date(); 
if (nDays==null || nDays==0) nDays=1; 
expire.setTime(today.getTime() + 1000000000000); 
document.cookie = cookieName+"="+escape(cookieValue) 
       + ";expires="+expire.toGMTString(); 
} 

function ReadCookie(cookieName) { 
var theCookie=" "+document.cookie; 
var ind=theCookie.indexOf(" "+cookieName+"="); 
if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"="); 
if (ind==-1 || cookieName=="") return ""; 
var ind1=theCookie.indexOf(";",ind+1); 
if (ind1==-1) ind1=theCookie.length; 
return unescape(theCookie.substring(ind+cookieName.length+2,ind1)); 
} 

使用點擊事件中的第一個按鈕來存儲cookie並點擊它的時間。

$("#linkId").click(function(){ 
currentTime = new Date(); 
var month = currentTime.getMonth() + 1; 
var day = currentTime.getDate(); 
var year = currentTime.getFullYear(); 
var hours = currentTime.getHours(); 
var mins = currentTime.getMinutes(); 
var secs = currentTime.getSeconds(); 
SetCookie("lastClick",hours + ":"+mins+":"+secs+" - "+day + "/" + month + "/" + year); 
}); 

和第二露面最後點擊:

$("#divId").click(function(){ 
alert(ReadCookie("lastClick")); 
}); 

正如我所說,這是一個有點不穩定,因爲它依賴於客戶端的cookie,它只會工作,每一次一個人。我在說,如果A點擊時間X和B點擊時間Y,當再次點擊時(在時間X和Y之後),他將獲得時間X,因爲是他唯一可以閱讀的時間。

SOURCE

我試圖讓餅乾更持久越好。