2012-02-06 6 views
0

Пожалуйста, проверьте код нижеJquery Печенье код, выполняемый без перехода на индексную страницу

$(document).ready(function(){ 
var href; 
if(href!=null) 
{ 
setContainerHtml($.cookie("activeElementHref")); 
}; 

$('nav ul li a').click(function(e){ 
    e.preventDefault(); 
    href= $(this).attr('href'); 
    $.cookie("activeElementHref", href) 
    setContainerHtml(href); 
}); 
}); 
function setContainerHtml(href) { 
     $.ajax({ 
     type: "POST", 
     url: "baker.php", 
     data:{send_txt: href}, 
     success: function(data){ 
      $('#aside-right, #intro').css('display','none'); 
      $('#main-content').fadeOut('10', function(){ 
      $('#main-content').css('width','700px'); 
      $('#main-content').css('margin','-30px 0 0 100px'); 
      $('#main-content').html(data); 
      $('#main-content').fadeIn('8000'); 
      }); 
     } 
    }); 
} 

Куки не работает щелкнутой состояние связи не сохраняется, когда я нажимаю обновления индекса HTML страницы отображается

+0

похоже 'href' всегда будет' null' на DOM ready и if-statement 'if (href! = null)' всегда будет возвращать true. Почему бы просто не удалить его? – Stefan

ответ

0

Href является нулем вместо пустой строки:

var href; // variable is set to null... 

if(href != '') // ... null is different than empty string... 
{ 
    // ...so the code always enters here. 
    setContainerHtml($.cookie("activeElementHref")); 
}; 

Я думаю, что это должно быть:

var href = $.cookie("activeElementHref"); //Read the cookie 

if(href !== null) 
{ 
    setContainerHtml(href); 
}; 
+0

Я отредактировал мой код, но теперь, что происходит, что состояние cookie не сохраняется – Bandayar

+0

Попробуйте код из моего обновления. Я думаю, вы не читаете файл cookie, прежде чем проверять состояние. –

+0

Его работа! Теперь, как удалить файл cookie, когда окно браузера закрыто? Мне нужно удалить файл cookie, как когда я снова открою страницу, страница с сохраненной сохраненной файловой страницей открывается не на индексной странице – Bandayar

0

Этот код:

var href; 
    href!=''; 

Действительно, если вы используете Chrome, перейдите в Консоль и запустите ее. Так вызывается первый раз setContainerHtml.

Попробуйте insteed:

var href; 
    href!=null; 

Или, если вы действительно хотите использовать = '' просто положить уаг HREF = "!"; в первой строке ...

+0

Я отредактировал мой код, но теперь, что происходит, когда состояние cookie не сохраняется – Bandayar

+0

Где вы читаете cookie? Попробуйте что-то вроде этого: var href = $ .cookie ("activeElementHref"); // Прочитайте файл cookie if (href! = Null) // Проверьте, существует ли файл cookie { if (href! = "") // Проверьте, является ли его пустым? Возможно, вы можете игнорировать его { setContainerHtml (href); }; }; –