Я использую jQuery Cookie для хранения значений из элемента clicked (элемент ссылки с изображением флага в качестве фона), который после щелчка изменит HTML в другом целевом местоположении.
Например, ниже я пытаюсь настроить таргетинг на a.flag
, а затем установить cookie, который нацелен на a.nturl
, затем находит в нем первый тег img
и выводит src
этого элемента изображения:
$("a.flag").click(function(event) {
location.reload();
$.cookie("language_name", event.target.id, { path: "/" });
$.cookie("flag_url", $("a.nturl").find("img").attr("src"), {path: "/" });
});
Затем здесь функция, которая извлекает файлы cookie и выводит их в HTML:
$(function() {
var language_name = $.cookie("language_name");
var flag_url = $.cookie("flag_url");
if (language_name === "English"){
$("div.selected").html( "<a onclick=\"return false;\" href=\"#\"><span><img src=\"" + flag_url + "\" alt=\"English\" height=\"16\" width=\"16\"></span>" + language_name + "</a>");
}
По какой-то причине flag_url
cookie flag_url
не правильно сохраняет значения - он в настоящее время сохраняет только первый атрибут src
из a.nturl
.
Код, как представляется, отлично работает при выполнении действий внутри самой цели с помощью $(this)
:
$("a.nturl").click(function(event) {
location.reload();
$.cookie("language_name", $(this).attr("title"), { path: "/" });
$.cookie("flag_url", $(this).find("img").attr("src"), {path: "/" });
});
Вы должны делать вещи с сеансом перед вызовом перезагрузки страницы, чтобы вы писали:
$("a.flag").click(function(event) {
$.cookie("language_name", event.target.id, { path: "/" });
$.cookie("flag_url", $("a.nturl").find("img").attr("src"), {path: "/" });
location.reload();
});