LocalStorage无法使用slideToggle(使用切换)

时间:2016-03-22 19:31:44

标签: javascript jquery

我正在使用slidetoggle();切换横幅和localStorage以记住已切换的横幅的最后状态。

localStorage可以正常使用toggle(); ,虽然使用slideToggle();它不再了。此外,当我将动画添加到切换(即切换(500);)时,localStorage也不再起作用。

   $('#button').click(function () {
        $(this).siblings().slideToggle();
        localStorage.setItem('display', $(this).siblings().is(':hidden'));
    });
    var block = localStorage.getItem('display');
    if (block == 'true') {
        $('#banner').hide()
    }

可能是什么问题?

JSFiddle:http://jsfiddle.net/9pj9ws5u/12/

1 个答案:

答案 0 :(得分:3)

这是应该做的:

$(this).siblings().slideToggle(function() {
    // Code is triggered once the animations finished and the element is hidden
    // $(this) - reference to the SIBLING element
    localStorage.setItem('display', $(this).is(':hidden'));
});

您的代码无效,因为您在动画完成之前检查了它是否已隐藏。将逻辑置于动画回调函数中可确保在动画完成后调用它。