【发布时间】:2012-04-18 16:26:02
【问题描述】:
我之前的脚本在调用时隐藏和显示某些 div,但我希望 cookie 记住要显示哪个,这样用户就不必不断单击每个页面上的链接,但到目前为止我未能获得jquery.cookie 插件与我的编码一起工作,任何帮助都会很棒。
工作单页: 旧代码 jquery:
function language(chosenlanguage) {
$('div[name|="lang"]').each(function(index) {
if ($(this).attr("class") == chosenlanguage) {
$(this).show(0);
}
else {
$(this).hide(0);
}
});
}
旧代码html(缩写只有href和div):
<div class="language">
<a href="javascript:language('english');">english</a>
<a href="javascript:language('spanish');">spanish</a>
<a href="javascript:language('german');">german</a>
</div>
<div name="lang" class="english" style="display:block;">content</div>
<div name="lang" class="spanish" style="display:none;">content</div>
<div name="lang" class="german" style="display:none;">content</div>
我使用 jquery.cookie.js 插件的新代码如图所示,但它什么也没做。
带有 cookie 脚本的 jquery:
$(document).ready(function() {
if($.cookie("language")) {
$('div[name|="lang"]').each(function(index) {
if ($(this).attr("class") == $.cookie("language")) {
$(this).show(0);
}
else {
$(this).hide(0);
}
});
}
$(".language a").click(function() {
$('div[name|="lang"]').each(function(index) {
if ($(this).attr("class") == $(".language a").attr("name")) {
$(this).show(0);
}
else {
$(this).hide(0);
}
});
$.cookie("language",$('.language a').attr('name'), {expires: 365, path: '/'});
return false;
});
});
html(略):
<div class="language">
<a href="javascript:language('english');" name="english">english</a>
<a href="javascript:language('spanish');" name="spanish">spanish</a>
<a href="javascript:language('german');" name="german">german</a>
</div>
<div name="lang" class="english" style="display:block;">content</div>
<div name="lang" class="spanish" style="display:none;">content</div>
<div name="lang" class="german" style="display:none;">content</div>
所以我只是想知道我做错了什么?
【问题讨论】:
-
你有一个
<div class='language'>包装你的 HTML 吗? ...您是否关闭了<a...标签?这可能会有所帮助。 -
是的,对不起,我忘了在编码框中添加它
标签: jquery html jquery-cookie