我有一个由“计算”按钮触发的函数
我需要此行在每个 session 中只运行一次( session 可以是 1 天或直到浏览器重新加载)。
$('.popup-with-form').magnificPopup('open');
这将打开一个 Magnific Popup。一旦执行此功能(弹出窗口打开),如果再次按下“计算”按钮,我不想再次打开弹出窗口。
JS/JQuery 代码:
function StateChanged() {
if (XmlHttp.readyState == 4 || XmlHttp.readyState == "complete") {
$('.popup-with-form').magnificPopup('open');
document.getElementById("CalcSum").innerHTML = XmlHttp.responseText;
document.getElementById("CalcSumPopup").innerHTML = XmlHttp.responseText;
}
}
PS 我知道很多这样的问题会弹出,我尝试了不同的做事方式,但由于我是“代码挑战者”并且不知道 JQuery 或 JS,所以我做不到想办法。我知道 JQuery 中有一个.one“东西”,但不明白如何让它工作。
最佳答案
如果您只想在每个浏览器 session 中执行一次此行,您可以使用 sessionStorage
。当您在 sessionStorage
上设置变量时,它会保持其值直到浏览器关闭(例如,直到您关闭 Google Chrome)。
所以你可以这样做:
if (!sessionStorage.alreadyClicked) {
$('.popup-with-form').magnificPopup('open');
sessionStorage.alreadyClicked = 1;
}
小心使用 sessionStorage
,因为它只能存储 string
值。
如果您希望该行在每个页面 session 中只执行一次(这意味着每次页面刷新一次),那么您可以使用任何变量并将其设置为 true 以记住您已经执行了该行:
if (!window.alreadyClicked) {
$('.popup-with-form').magnificPopup('open');
alreadyClicked = true;
}
关于javascript - JQuery - 每个 session 运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070877/