我有一些问题得到这个click
函数的最后一部分工作。language_name
和flag_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];
}
});