我有一个由"计算"按钮触发的功能
我需要这个行每个会话只运行一次(会话可能是1天或直到重新加载浏览器).
$('.popup-with-form').magnificPopup('open');
Run Code Online (Sandbox Code Playgroud)
这将打开一个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;
}
}
Run Code Online (Sandbox Code Playgroud)
PS我知道很多这些问题都出现了,我尝试了不同的做事方式,但由于我是"代码挑战"并且不了解JQuery或JS我无法弄明白.我知道有一个.一是在JQuery中的"东西",但不知道如何使它发挥作用.
我真的很赞赏任何帮助.谢谢!
更新问题由@MarcoBonelli回答 - 谢谢!
工作方案:
if (!sessionStorage.alreadyClicked) {
$('.popup-with-form').magnificPopup('open');
sessionStorage.alreadyClicked = "true";
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*lli 14
如果您希望每个浏览器会话只执行一次此行,则可以使用sessionStorage.当您设置变量时,sessionStorage它会保持其值直到浏览器关闭(例如,直到您关闭Google Chrome).
所以你可以这样做:
if (!sessionStorage.alreadyClicked) {
$('.popup-with-form').magnificPopup('open');
sessionStorage.alreadyClicked = 1;
}
Run Code Online (Sandbox Code Playgroud)
要小心,sessionStorage因为它只能存储string值.
如果您希望每个页面会话只执行一次该行(这意味着每次页面刷新一次),那么您可以使用任何变量并将其设置为true以记住您已执行该行:
if (!window.alreadyClicked) {
$('.popup-with-form').magnificPopup('open');
alreadyClicked = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11654 次 |
| 最近记录: |