2015-06-26 30 views
1

我有一個jQuery函數,可在點擊時觸發警報彈出窗口。當OK按鈕被擊中時,我需要另一個事件來觸發。在這種情況下,用戶同意某些事情,我需要將一個變量存儲到他們同意的localstorage中。我當前的警報代碼:帶有單擊警告「確定」按鈕的jQuery事件

$('.external').click(function() { alert("You are now leaving site"); }); 
+1

使用確認框:https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm –

+0

我建議你應該爲第一個警報創建一個模態然後點擊OK ,顯示窗口警報。 – Sajal

+0

至於localstorage部分的問題,請查看[this](http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage)出 –

回答

4

您正在尋找confirm()。試試這個:

$('.external').click(function (e) { 
    var r = confirm("You are now leaving site"); 
    if (r == true) { 
     // user agreed, do something 
    } else { 
     // user did not agree, do something else 
    } 
    e.preventDefault(); 
}); 

編輯1:

按@JohnCarpenter,關於localStorageStoring Objects in HTML5 localStorage

編輯2:

要在確認頁面重定向,使用的東西像這樣:

window.location.replace("http://domain.com"); 

你也可以得到花哨jQuery和從原來的錨的href屬性動態獲取網址:

window.location.replace($(this).prop('href')); 

也請參閱有關this postwindow.location.replace。有可能window.location.href會更適合您的需求。

+0

好的答案,對於本地存儲部分的問題, [這個堆棧溢出鏈接](http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage)是一個很好的。 –

+0

@Stuart很好的答案。使用confirm()時,如果用戶選擇取消,不遵循鏈接的正確方法是什麼? – Sam

+0

@Sam在'click'調用事件對象('e')內傳遞閉包時,添加'e.preventDefault();'將阻止瀏覽器導航到鏈接的默認行爲。我已經更新了我的答案以反映這一點。 –