Я сохраняю "это" при щелчке файла li в cookie JQuery, но вместо сохранения его значения он сохраняет свой тип:
$("ul > li").live('click', function () {
$.cookie("liEvent", this, { expires: 100, path: "/" });
alert(this);
}
Значение this thiscoming следующее: [object HTMLLIElement], пока оно должно появляться как элемент li, который находится внутри ul.
Пожалуйста помоги.
Это довольно сложно объяснить, но this
указатель, а не фактическое значение. Если вы хотите иметь доступ к элементу li
в другой функции или аналогичной, вы можете просто передать свой атрибут id
или аналогичный.
Вы не можете реально сохранить объекты в файлы cookie. Потому что будет слишком много рекурсии, и полученное значение будет огромным. вам понадобится реализовать какую-то сериализацию или сохранить идентификатор, который вы можете использовать для перезагрузки значения.
Я предполагаю, что если вы используете файлы cookie, вы планируете обновлять страницу? В этом случае this
ключевое слово не принесет вам пользы - поскольку ссылка на объект изменится.
Если вам нужно сохранить значение li в cookie, вы должны использовать
$(this).html()
Также есть некоторые недостатки в использовании.live()... следовательно, я бы рекомендовал использовать вместо.on().
$("ul").on('click', "li", function () {..
Проблемы, связанные с.live(), обсуждались здесь jQuery-недостатки последовательного использования 'live'
this.innerHTML