我正在使用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/
答案 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'));
});
您的代码无效,因为您在动画完成之前检查了它是否已隐藏。将逻辑置于动画回调函数中可确保在动画完成后调用它。