, поэтому прямо сейчас я создаю боковое меню панели инструментов, способное к откату и возможность повторного открытия. Все отлично работает, за исключением одной проблемы. Скажем, я рухнул в свое боковое меню, а затем снова и снова нажимаю страницу обновления, со скоростью около 1 клика в секунду. Около 2/10 из этих перезагрузок страниц не будут отображаться с кнопкой, которая должна быть там. Вот что я получил:Повторная перезагрузка страницы иногда не показывает кнопку
$(document).ready(function() {
$("#home").click(function() {
"use strict";
$.cookie('open', false);
$(this).hide();
$("#home2").show();
$("#nav").slideToggle('fast');
$(".content").animate({marginLeft: "0px"}, 200, function() {});
$(".content").animate({width: "100%"}, 200, function() {});
});
$("#home2").click(function() {
"use strict";
$.cookie('open', true);
$(this).hide();
$("#nav").slideToggle('fast');
$("#home").show();
$(".content").animate({marginLeft: "220px"}, 200, function() {});
$(".content").animate({width: "100%"}, 200, function() {});
});
if ($.cookie('open') === 'false') {
$("#nav").slideToggle('fast');
$(".content").animate({marginLeft: "0px"}, 1, function() {});
$(".content").animate({width: "100%"}, 1, function() {});
$.cookie('open', false);
$("#home").hide();
$("#home2").show();
}
});
Я использовал файлы cookie, чтобы узнать, включено ли меню боковой панели. Когда cookie открывается == false, боковая панель закрывается, а когда cookie открывается == true, открывается.
Чтобы предоставить более подробную информацию, идентификатор «home2» - это тот, который не отображается в некоторых случаях.
Всякий раз, когда я делаю перезагрузки страницы, есть несколько миллисекунд, где я могу увидеть
$("#nav").slideToggle('fast');
$(".content").animate({marginLeft: "0px"}, 1, function() {});
$(".content").animate({width: "100%"}, 1, function() {});
материал делает свою работу. Всякий раз, когда это происходит, появляется кнопка. Но иногда на странице перезагружается страница не делает этого, и она просто перезагружает молниеносно, когда я не вижу, как предыдущий код выполняет свою работу; это когда кнопка # home2 решает не всплывать, что заставляет меня поверить в то, что инструкция stuff не выполняется.
Это такая странная проблема, и я понятия не имею, почему он ведет себя так ..
EDIT: Изменены если заявление вокруг:
if ($.cookie('open') === 'false') {
$("#home2").show();
$("#home").hide();
$(".content").animate({marginLeft: "0px"}, 1, function() {});
$(".content").animate({width: "100%"}, 1, function() {});
$.cookie('open', false);
$("#nav").slideToggle('fast');
}
Тем не менее, имеющие такую же проблему.
Вы должны, вероятно, тщательно рассмотреть анимацию, и если они должны быть закованы в цепочку или иначе заданы окончательная последовательность выполнения. - на '.content' у вас есть два из них; может ли он быть объединен с одним и т. д. –
Нужны ли настройки длительности 1 на '.content' или вы действительно хотите, чтобы CSS устанавливал эти значения здесь? 1 довольно короткий на 1 миллисекунду - для каждого из них требуется больше времени, чтобы настроить таймер и т. Д. –
Еще один вариант - сделать это позже в цикле страницы, используя '$ (window) .load (function() { // мой код здесь }); 'вместо готового документа; что это здесь? http://api.jquery.com/ready/ –