我有以下代码: -
jQuery(document).ready(function() {
jQuery('.remove-me').bind( "click", function() {
jQuery('#booking-alert').fadeOut(200);
});
});
当用户点击“删除我”时,这基本上会淡出一个小窗口。元件。
我想要添加的内容是,如果用户决定隐藏div,它就知道用户之前已经点击过,因此不再显示该元素。
所以jQuery('#booking-alert').hide();
这可以使用会话来完成,还是有其他方法可以做到这一点?
答案 0 :(得分:1)
您可以将此首选项存储在浏览器的localStorage中。
您可以使用以下方法检查浏览器的localStorage功能:
function supports_html5_storage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
然后你可以使用吸气剂和放大器用于localStorage的setter来存储和检索信息。
//Getter
var foo = localStorage.getItem("bar");
// Setter
localStorage.setItem("bar", foo);
您可以在此处找到有关HTML5存储的更多信息:http://diveintohtml5.info/storage.html
所以在你的情况下你可以这样做:
$(document).ready(function() {
$('.remove-me').bind( "click", function() {
jQuery('#booking-alert').fadeOut(200);
localStorage.removeme = true;
});
//code to not show it in the first place:
if (localStorage.removeme)
{
//something to hide the element if it was previously removed:
$('#booking-alert').css("display","none");
}
});
答案 1 :(得分:0)
您可以使用不需要HTML5支持的Cookie来完成此操作。如果您还没有插件,可以下载here。
//include plugin after the JQuery library
<script src="/path/to/jquery.cookie.js"></script>
jQuery(document).ready(function() {
if ($.cookie('bookingalert') != 'true') {
jQuery('.remove-me').bind( "click", function() {
$.cookie('bookingalert', 'true'); //create the cookie when user clicks
jQuery('#booking-alert').fadeOut(200);
});
}
});