2016-03-22 60 views
2

我正在使用slidetoggle();切換橫幅和localStorage來記住已切換的橫幅的最後一個狀態。LocalStorage不能與sli​​deToggle(使用切換)

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/

回答

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')); 
}); 

你的代碼沒有奏效。將動畫回調函數內部的邏輯確保在動畫完成後調用它。

+0

可能是很好的補充說明爲什麼它以前沒有工作。 – JCOC611

+0

@ JCOC611你說得對。添加到我的答案 –