2016-01-27 3 views
0

, поэтому прямо сейчас я создаю боковое меню панели инструментов, способное к откату и возможность повторного открытия. Все отлично работает, за исключением одной проблемы. Скажем, я рухнул в свое боковое меню, а затем снова и снова нажимаю страницу обновления, со скоростью около 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'); 
} 

Тем не менее, имеющие такую ​​же проблему.

+0

Вы должны, вероятно, тщательно рассмотреть анимацию, и если они должны быть закованы в цепочку или иначе заданы окончательная последовательность выполнения. - на '.content' у вас есть два из них; может ли он быть объединен с одним и т. д. –

+0

Нужны ли настройки длительности 1 на '.content' или вы действительно хотите, чтобы CSS устанавливал эти значения здесь? 1 довольно короткий на 1 миллисекунду - для каждого из них требуется больше времени, чтобы настроить таймер и т. Д. –

+0

Еще один вариант - сделать это позже в цикле страницы, используя '$ (window) .load (function() { // мой код здесь }); 'вместо готового документа; что это здесь? http://api.jquery.com/ready/ –

ответ

0

Один из вариантов, чтобы сделать это позже в цикле страницы с помощью

$(window).load(function(){ 
    //my code here 
}); 

вместо документа готовы; что это здесь? api.jquery.com/ready

0

Возможные шансы могут быть медленными сетевыми подключениями.

Или сценарий else не загружен должным образом во время обновления.

Кэш также может стать препятствием для данной проблемы.

+0

Я знаю, что моя сетевая связь более чем прекрасна. Итак, как я могу правильно загрузить его при обновлении или как решить проблему с кешем? – John

+0

какой сервер вы используете?Вы можете отправить изображение вкладки NETWORK в элемент проверки –

+0

В настоящее время я использую Apache с WAMP. Вот вкладка сети: http://i.imgur.com/dTBWDpP.png – John

Смежные вопросы