所以,我在下面使用这个函数来一次更改一个元素的背景。我让它工作得很好,考虑到我是从这里得到的,但我想要的是,当你在添加类(class)后点击第二个或第三个 child 时,它会删除类(class)并将事件类(class)添加回第一个 child 。
$(window).load(function(){
$('.innernav li:first-child a').addClass('back');
});
$("a").click(function () {
$('a').removeClass('back');
$(this).addClass('back');
});
很简单,我希望它在第二次单击某个元素时恢复到第一个子元素的规则。之所以这样是因为,在我的站点上,当您单击一个时,它会在其下方显示内容。当点击不同的元素时,它将显示新内容并隐藏之前的内容,但当再次点击时,它会将内容返回到页面最初加载时显示的原始内容。我会将该函数包含在 jsFiddle 中让你们更好地了解实际发生的事情。我无法让 toggleDisplay 在 jsFiddle 中工作,但它确实可以正常工作。
最佳答案
尝试检查类 'back'
是否已经存在(也就是链接之前已被单击)。如果是,则恢复第一个 child 规则:
$(window).load(function(){
$('.innernav li:first-child a').addClass('back');
});
$("a#bg").click(function(){
var isSecondClick = $(this).hasClass('back');
$('a').removeClass('back');
if (isSecondClick) {
$('.innernav li:first-child a').addClass('back');
} else {
$(this).addClass('back');
}
});
关于jquery 一次改变一个元素的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256152/