2014-05-14 94 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]; 
    } 
}); 
相關問題