您可能必须将该首选项存储在 cookie 中或服务器本身上。可以在另一个 SO 线程中找到很好的阅读。
用于存储 cookie 基本上,您要做的就是围绕您的代码实现 javascript。为简单起见,我使用 jQuery 和一个 jQuery cookie 插件。
// jQuery pulled from Google CDN
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
// jQuery cookie plugin. You will have to download it on your own: https://github.com/carhartl/jquery-cookie
<script src="/path/to/jquery.cookie.js"></script>
// jQuery action here
<script>
function runOnLoad(){
if($.cookie('alert-box') == null) {
$.cookie('alert-box', 'open', { expires: 7 });
} else if($.cookie('alert-box') == 'close') {
$(".close").hide();
}
// php psuedo code here (if you are using the server option)
<?php
if(check database for hide option == true){
echo '$(".close").hide();
}
?>
}
function hideMe(){
$.cookie('alert-box', 'close', {expires:7 });
$(".close").hide();
}
</script>
<body onload="runOnLoad()">
<div class="alert-message success" data-alert="alert">
<a class="close" data-dismiss="alert" href="hideMe.php" onclick="hideMe()" >×</a>When I click × I'd like this to never appear again.
</div>
</body>
如果您使用服务器选项,则必须将 hideMe.php 编码为:
- 在数据库的表中设置隐藏选项,即 userPreference 为 true
- 将用户重定向回他正在查看的页面。
免责声明:这些代码旨在让您了解如何完成。但是,不能保证它会按原样工作,因为我没有测试代码。
笔记:
- 我使用了 jQuery 的hide。阅读它。
- 您可以在此处阅读有关jQuery cookie 插件的更多信息。