2014-05-14 163 views
0

我有一些问题让click函数的最后部分工作。 language_nameflag_url Cookie设置正确,页面也正在重新加载,但.html()未被替换(最后一个功能)。jQuery替换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>"); 
     });   
     }); 
+0

看起来要重定向之前函数可以调用...... –

+0

谢谢...我会尝试修复 –

回答

1

删除$(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代码是服务器端...不是客户端

+0

这不起作用 - 它看起来好像在函数可以处理之前重新定向。 –

0

这里是工作的代码 - 我需要

.click()函数中的重新加载的页面关联起来,然后在单独的函数中使用.html(),单击函数的OUTSIDE。

$("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>"); 
     }); 
0

我不知道如果我明白了一切,但也许如果可能是这样的:

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]; 
    } 
}); 
相关问题