Доступ к элементу за пределами цели

0

Я использую 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: "/" });

            }); 
Теги:

1 ответ

0

Вы должны делать вещи с сеансом перед вызовом перезагрузки страницы, чтобы вы писали:

$("a.flag").click(function(event) {
    $.cookie("language_name", event.target.id, { path: "/" });
    $.cookie("flag_url", $("a.nturl").find("img").attr("src"), {path: "/" });       

    location.reload();

});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню