我有一个wordpress网站,并在每个页面加载时显示一条消息。单击按钮(.ig_close)时,我希望在页面刷新后不再显示该消息。
// html
<div class="icegram action_bar_135">
<div id="icegram_message_135">
<div class="ig_content">
<div id="ig_close_135" class="ig_close">
<span></span>
</div>
<div class="ig_data ig_clear_fix">
<div class="ig_message">Text</div>
</div>
</div>
</div>
</div>
// js
// click button and store locally
jQuery('.ig_close').click(function(){
localStorage.setItem('saved', true);
alert('You saved it!');
});
// if saved locally, hide .icegram
jQuery( document ).ready(function() {
if (localStorage.getItem('saved')) {
alert('its saved!');
jQuery('.icegram').hide();
}
});
它告诉我它本地存储但不会隐藏我的课程,为什么?
答案 0 :(得分:0)
问题是在<div class="icegram ...">
时刻document.ready
不存在。在那之后它们被插入到DOM中。
您可能需要检查Icegram
插件是否提供了一些您可以观察并采取行动的JavaScript事件。
修改强>
Icegram提供了一个名为icegram
的JS对象,它公开了一个方法icegram.hide_all_messages()
。我认为这种方法是你应该在适当的时候执行的。
此外,icegram.messages
是包含可见弹出窗口的所有实例的数组; icegram.messages[0].hide()
将隐藏第一个弹出窗口。
您应该在浏览器的JS控制台中查看icegram
对象。
您需要弄明白的是 正确的时机, 上述方法之一。