当我输入这个问题时,我注意到了类似的问题,但我的方法不同。我确实读过它们但不是我想要做的,但我确实得到了一些想法。
我的页面上有三个链接(锚标记),我使用JQuery根据用户点击的链接在链接之间切换一个类。点击后链接变为活动状态,我添加了Cookie以记住用户操作。
我真正想做的是设置第一个链接或链接,例如:ID等于1;是默认的。我想要使用相同的类(activeLink)来使链接处于活动状态以应用于默认值。单击其他人时,将删除该类,并且单击的链接将变为活动状态。
这就是我不知道该怎么做。
我的页面是单页 的 HTML:
<ul class="yeahBaby">
<li><a id="one" href="#/">Make me default</a></li>
<li><a id="two" href="#/">Example</a></li>
<li><a id="three" href="#/">Example</a></li>
</ul>
JQUERY:
$(document).ready(function() {
var idActive = $.cookie('cookieActive');
if (idActive) {
$('#'+idActive).addClass('activeLink');
}
$('.yeahBaby li a').click(function() {
var id = $(this).attr('id');
$(".yeahBaby li a").removeClass("activeLink");
$(this).addClass("activeLink");
$.cookie('cookieActive', id); //Save anchor id as cookie
$.cookie('cookieActive', id, { expires: 10000});
});
});
CSS:
<style type="text/css">
.activeClass{
color: #999;
}
</style>
谢谢大家!!
答案 0 :(得分:1)
在HTML中设置默认为id="one"
的链接。
<ul class="yeahBaby">
<li><a id="one" href="#/">Make me default</a></li>
<li><a id="two" href="#/">Example</a></li>
<li><a id="three" href="#/">Example</a></li>
</ul>
然后在jQuery中:
// Upon loading the page set default .activeLink
$(window).load(function() {
// If cookie exists
if( $.cookie('active') !== null ) {
// Add .activeLink to last the class in cookie
$.cookie('active').addClass('activeLink');
} else {
// Else set on default
$('#one').addClass('activeLink');
}
});
// Bind click event to each anchor in your list
$('.yeahBaby li a').bind('click', function(e) {
// Remove .activeLink class from current active link
$('.activeLink').removeClass('activeLink');
// Add .activeLink to the link just clicked
$(this).addClass('activeLink');
// Create cookie
$.cookie('active', $(this));
return false;
});
在此处查看此行动:JSFiddle
- 更新 -
请参阅上文,了解使用jQuery $.cookie plugin添加Cookie。