在单击事件和页面重载后替换HTML


jQuery Replace HTML after click event and page reload

我有一些问题得到这个click函数的最后一部分工作。language_nameflag_url cookie设置正确,页面也正在重新加载,但.html()没有被替换(最后一个功能)。

所以也许事件的顺序是错误的?不确定。

$("a.flag").click(function() {  
         $.cookie("language_name", $(this).attr("title"),{ path: "/" });
         $.cookie("flag_url", $(this).find("img").attr("src"),{ path: "/" });
           var lang_prefix = $(this).attr("class").split(" ")[2];
           var language_name = $.cookie("language_name");
           var flag_url = $.cookie("flag_url");
           var default_lang = "<?php echo get_option('googlelanguagetranslator_language'); ?>";

           if (lang_prefix != default_lang) {
              setTimeout(function(){
                window.location.href = window.location.href.split("?")[0] + "?lang=" + lang_prefix;
              }, 200);
            } else {
              window.location.href = window.location.href.split("?")[0];
            }

         $(function() {
           $("div.selected").html( "<a class='"notranslate nturl'" title='"" + language_name + "'" onclick='"return false;'" href='"#'"><span class='"flag'"><img class='"flagimg flagselect'" src='"" + flag_url + "'" alt='"" + language_name + "'" height='"16'" width='"16'"></span>" + language_name + "</a>");
         });        
       });

删除$(function() { }:

$("a.flag").click(function() {  
     $.cookie("language_name", $(this).attr("title"),{ path: "/" });
     $.cookie("flag_url", $(this).find("img").attr("src"),{ path: "/" });
       var lang_prefix = $(this).attr("class").split(" ")[2];
       var language_name = $.cookie("language_name");
       var flag_url = $.cookie("flag_url");
       var default_lang = "<?php echo get_option('googlelanguagetranslator_language'); ?>";

       if (lang_prefix != default_lang) {
          setTimeout(function(){
            window.location.href = window.location.href.split("?")[0] + "?lang=" + lang_prefix;
          }, 200);
        } else {
          window.location.href = window.location.href.split("?")[0];
        }
       // REMOVE
       $("div.selected").html( "<a class='"notranslate nturl'" title='"" + language_name + "'" onclick='"return false;'" href='"#'"><span class='"flag'"><img class='"flagimg flagselect'" src='"" + flag_url + "'" alt='"" + language_name + "'" height='"16'" width='"16'"></span>" + language_name + "</a>");
   });

旁注:php代码是服务器端…非客户端

下面是有效的代码-

我需要在.click()函数中关联重新加载的页面,然后在click函数之外的函数中单独使用.html()

$("a.flag").click(function() {  
         $.cookie("language_name", $(this).attr("title"),{ path: "/" });
         $.cookie("flag_url", $(this).find("img").attr("src"),{ path: "/" });
         var lang_prefix = $(this).attr("class").split(" ")[2];
         var default_lang = "<?php echo get_option('googlelanguagetranslator_language'); ?>";
         if (lang_prefix != default_lang) {
           setTimeout(function(){
             window.location.href = window.location.href.split("?")[0] + "?lang=" + lang_prefix;
           }, 200);
         } else {
           window.location.href = window.location.href.split("?")[0];
         }
       });
       $(function() {
         var language_name = $.cookie("language_name");
         var flag_url = $.cookie("flag_url");
         $("div.selected").html( "<a class='"notranslate nturl'" title='"" + language_name + "'" onclick='"return false;'" href='"#'"><span class='"flag'"><img class='"flagimg flagselect'" src='"" + flag_url + "'" alt='"" + language_name + "'" height='"16'" width='"16'"></span>" + language_name + "</a>");
       });

我不知道我是否理解了一切,但也许可以这样:

var lang_prefix = '';
var default_lang = "<?php echo get_option('googlelanguagetranslator_language'); ?>";
var language_name = $.cookie("language_name");
var flag_url = $.cookie("flag_url");
if (language_name != '' && flag_url != '') {
    $("div.selected").html( "<a class='"notranslate nturl'" title='"" + language_name + "'" onclick='"return false;'" href='"#'"><span class='"flag'"><img class='"flagimg flagselect'" src='"" + flag_url + "'" alt='"" + language_name + "'" height='"16'" width='"16'"></span>" + language_name + "</a>");
}
$("a.flag").click(function() {  
     $.cookie("language_name", $(this).attr("title"),{ path: "/" });
     $.cookie("flag_url", $(this).find("img").attr("src"),{ path: "/" });
     lang_prefix = $(this).attr("class").split(" ")[2];
     language_name = $.cookie("language_name");
     flag_url = $.cookie("flag_url");
     if (lang_prefix != default_lang) {
          setTimeout(function(){
            window.location.href = window.location.href.split("?")[0] + "?lang=" + lang_prefix;
          }, 200);
     } else {
         window.location.href = window.location.href.split("?")[0];
     }
});