2013-09-25 89 views
0

我正在使用jQuery Cookie存儲單擊元素(帶有標記圖像作爲背景的鏈接元素)的值,一旦單擊它,它將更改不同目標位置中的HTML。訪問目標之外的元素

例如,下面我試圖定位a.flag,然後設置靶向a.nturl一個cookie,則發現在其內的第一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: "/" });  
}); 

然後這裏的檢索餅乾的信號並輸出​​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不會存儲正確的價值觀 - 它目前S ^只能從a.nturl中獲得第一個src屬性。

下面的代碼似乎使用$(this)執行目標本身的動作時,工作帶來極大的:

$("a.nturl").click(function(event) { 
    location.reload(); 
       $.cookie("language_name", $(this).attr("title"), { path: "/" }); 
       $.cookie("flag_url", $(this).find("img").attr("src"), {path: "/" }); 

      }); 

回答

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(); 

});