如果本地存储隐藏类?

时间:2016-09-23 19:56:00

标签: jquery wordpress local-storage

我有一个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();
        }

 });

它告诉我它本地存储但不会隐藏我的课程,为什么?

1 个答案:

答案 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对象。

您需要弄明白的是 正确的时机, 上述方法之一。