这个问题与我之前的一篇文章有关,当单击某个开关时,更改href-tag的URL。Link
我现在设置了一些不同的东西,因为我哪里也去不了。href更改现在起作用了,但我无法在下拉框中显示选定的图标和名称。
JSFiddle
因此,例如,如果选择了“德国”,那么它应该与相应的旗帜图标一起显示,作为下拉框中的当前选择。
是我的设置错误,还是需要什么才能解决这个问题?
<div id="language-selection"><div id="current-language"><span class="element-invisible">Current language:</span>
<img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_United_Kingdom.png" alt="English" title="English" /> English
</div>
<div class="element-invisible">Switch to:</div>
<ul id="other-languages">
<li class="zh-hans first"><a href="javascript:;" data-lang="Chinese" class="clickButton"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_China.png" alt="简体中文" title="简体中文" /> 简体中文</a></li>
<li class="en"><a href="javascript:;" data-lang="English" class="clickButton" </a> <span class="language-link"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_United_Kingdom.png" alt="English" title="English" />English</span></li>
<li class="de last"><a href="javascript:;" data-lang="German" class="clickButton"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_Germany.png" alt="German" title="German" /> German</a></li>
</ul>
</div>
<ul>
<li><a class="clickButton" href="folder1/firstLink/Languages/English/folder/index.html">Index Link</a></li>
<li><a class="clickButton" href="../folder2/secondLink/Languages/English/folder/index.html">A different Link </a></li>
<li><a class="clickButton" href="../../folder3/Languages/English/folder/index.html">Another different link</a></li>
<ul>发布于 2012-10-22 17:58:49
请将下面给出的代码添加到current = lang;之前的jquery脚本代码中
/*Replace language flag src , alt and title*/
$('#language-selection > #current-language > img').attr('src' , $(this).find('img').attr("src"));
$('#language-selection > #current-language > img').attr('alt' , lang);
$('#language-selection > #current-language > img').attr('title' , lang);
/*check for all content in div having id current-language and check if nodeType == 3 mean string text then replace old text with new one */
$("#language-selection > #current-language").contents().each(function() {
if(this.nodeType == 3)
this.nodeValue = this.nodeValue.replace(current, lang);
});请检查链接Jsfiddle Link。
谢谢
发布于 2012-10-22 16:59:36
嗨,我对你的代码做了一点修改,以便能正常工作。您需要在选择单击时同时更改语言文本和语言图像。
HTML部件:
<div id="language-selection"><div id="current-language"><span class="element-invisible">Current language:</span>
<img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_United_Kingdom.png" alt="English" title="English" /><span class="text">English</span>
</div>
<div class="element-invisible">Switch to:</div>
<ul id="other-languages">
<li class="zh-hans first"><a href="javascript:;" data-lang="Chinese" class="clickButton"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_China.png" alt="简体中文" title="简体中文" /> 简体中文</a></li>
<li class="en"><a href="javascript:;" data-lang="English" class="clickButton"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_United_Kingdom.png" alt="English" title="English" />English</a></li>
<li class="de last"><a href="javascript:;" data-lang="German" class="clickButton"><img class="language-icon" src="http://www.euromonitor.com/medialibrary/Image/Flag_20x20_Germany.png" alt="German" title="German" /> German</a></li>
</ul>
</div>
...JS在此部分中:
...
var current = "English"
$("[data-lang]").on("click", function() {
var lang = $(this).data("lang");
$(".clickButton").prop("href", function(i, href) {
return href.replace(current, lang);
});
$("#current-language img").attr("src", $(this).children("img").attr("src")); // NEW
$("#current-language .text").text(lang); // NEW
current = lang;
});https://stackoverflow.com/questions/13007293
复制相似问题