2014-05-14 2 views
0

click 기능의 마지막 부분을 작동시키는 데 문제가 있습니다. language_nameflag_url 쿠키가 올바르게 설정되어 있고 페이지가 다시로드되지만 .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()을 자체 함수 인 click 함수의 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]; 
    } 
}); 
관련 문제