#jquery #jquery-plugins #cookies
#jquery #jquery-плагины #файлы cookie
Вопрос:
Почему нижеприведенное может сработать только после первого раза? После нажатия на пункт меню появляется нулевой cookie-файл, но каждый раз после этого он работает идеально…
Я использую плагин jquery cookies.
$j(document).ready(function(){
$j('#menu-main-nav-menu li').each(function(index) {
$j(this).data('sc-menu-item', index);
})
currentPage = $j.cookie('currentPage');
// do some stuff with the cookie value here
$j('#menu-main-nav-menu li').click(function() {
$j.cookie('currentPage', $j(this).data('sc-menu-item'))
});
});
Большое, очень большое спасибо за любую помощь — я застрял!
Комментарии:
1. выведите это значение, прежде чем устанавливать файл cookie, используйте console.log($j(this).data(‘sc-menu-item’));
2. Хорошо — я понял это. человеческая ошибка. js был в порядке, но мой домен перенаправлял, что привело к тому, что файл cookie был установлен в неправильном домене с самого начала. спасибо за помощь.
Ответ №1:
наши ,
Я не думаю, что с плагином cookie что-то не так, выполните следующие способы отладки
выведите значение перед его установкой
use console.log($j(this).data('sc-menu-item')); or alert//
это значение может быть null..
вышеупомянутая ошибка должна устранить проблему
Комментарии:
1. спасибо, Коби. К сожалению, это дает правильный ответ! т.е. данные элемента меню правильно считываются, а затем правильно устанавливаются в cookie-файле — они просто отключаются при загрузке следующей страницы. продолжая в том же духе, я alert () редактировал значение файла cookie сразу после этого (оно было установлено), а также непосредственно перед (document). готово — к моменту запуска на следующей странице он уже был равен null.
Ответ №2:
поместите event.preventDefault()
в событие щелчка по ссылке, затем установите cookie, а затем перейдите по ссылке и посмотрите, имеет ли это значение.
Комментарии:
1. Как и должно быть, но установил ли он файл cookie? Если это произошло, значит, он работает так, как задумано, и вы можете снова запустить функцию link, выполнив перенаправление javascript.
2. а, я понимаю, что вы имеете в виду под «пересылкой вперед». Теперь я попробовал это — он действительно правильно устанавливает файл cookie (как и происходило в первую очередь — см. Мой ответ Kobe, выше). Однако он по-прежнему отключается при загрузке страницы.
3. fiddle.jshell.net/niklasvh/tJrGa/show/light по крайней мере, для меня он установлен, даже после загрузки страницы.
4. похоже, это работает, спасибо, что ускорили это. Я предполагаю, что должно быть какое-то внешнее влияние, но я не знаю, что это может быть?
Ответ №3:
Оказывается, js был в порядке. Я установил файл cookie в неправильном домене… новичок, которым я являюсь…