【发布时间】:2016-10-19 14:45:03
【问题描述】:
我有一个只有注册用户才能访问的网页。
我使用 Bootstrap 作为 CSS 框架。
如果用户登录,则会出现一个带有成功消息的警告框,如下所示:
<div class="container">
<div class="alert alert-success" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> You have been signed in successfully!
</div>
</div>
现在我想在几秒钟后关闭它。我使用这个 jquery 脚本来做到这一点:
window.setTimeout(function() {
$(".alert").fadeTo(500, 0).slideUp(500, function(){
$(this).remove();
});
}, 1500);
我怎样才能只运行一次这个代码,这样如果用户不小心刷新了浏览器就不会再次看到这个警报?
我在这里读过这篇文章https://stackoverflow.com/a/23859937/5930557
并且知道它可以使用来自http://api.jquery.com/one/ 的.one() 函数来完成
但我不知道如何将它包含到我的代码中。有没有人可以为我纠正并解释,因为 jquery 和 javascript 对我来说是新的:P
【问题讨论】:
-
使用刷新的浏览器 one() 函数无法帮助您,您可以尝试在 localStorage 中设置一个变量,并使用某种会话 ID 进行检查。
-
如果用户刷新页面,脚本将重新加载,因此 one() 将不起作用。我会使用 cookie 或会话来做到这一点。如果会话或 cookie 存在,我将不会运行脚本,否则它将运行。
-
cookies,或者localStorage,或者直接调用登录成功函数提示的函数。
标签: javascript jquery twitter-bootstrap function twitter-bootstrap-3