我想制作一个在您单击时突出显示的 URL 列表,问题是任何时候都应该突出显示一个链接。
我能够让重置按钮工作。使用过removeAttr) - $("a").removeAttr("style")
- (这样做有什么负面影响吗?)
但我不能让它一次只做一个亮点。
有人可以帮助我提供一次仅突出显示一个链接的示例代码吗?现在,可以突出显示多个链接。
我能够在 Jsfiddle http://jsfiddle.net/M3vVw/3/上做一个例子
我想制作一个在您单击时突出显示的 URL 列表,问题是任何时候都应该突出显示一个链接。
我能够让重置按钮工作。使用过removeAttr) - $("a").removeAttr("style")
- (这样做有什么负面影响吗?)
但我不能让它一次只做一个亮点。
有人可以帮助我提供一次仅突出显示一个链接的示例代码吗?现在,可以突出显示多个链接。
我能够在 Jsfiddle http://jsfiddle.net/M3vVw/3/上做一个例子
我建议这样做:创建一个 CSS 规则并将其应用于您单击的元素,首先从所有链接中删除相同的样式。
jQuery
$("a").click(function () {
$('a').removeClass('back');
$(this).addClass('back');
});
$("#btn").click(function () {
$("a").removeClass("back")
});
CSS
.back {
background-color: #ff3fff;
}
我建议使用addClass()
(正如adeneo 已经建议的那样),但如果你必须使用attr()
:
$('a').click(function(){
var that = $(this);
that.css("backgroundColor", "#ff3fff").closest('li').siblings().find('a').attr('style', '');
});
或者:
$('a').click(function(){
var that = $(this);
that.css("backgroundColor", "#ff3fff").closest('li').siblings().find('a').removeAttr('style');
});
请记住,使用attr()
/removeAttr()
具有令人难以置信的破坏性,并且需要更多的工作和维护(您必须每次都显式地重构每个样式元素属性的 CSS );/效率更高,因为它包含所有外部样式,在需要时可以轻松地向元素添加/删除该样式。addClass()
removeClass()
参考:
你可以使用这个:
$("a").click(function()
{
$(this).css("backgroundColor", "#ff3fff");
$("a").not($(this)).removeAttr("style");
});
$("#btn").click(function(){
$("a").removeAttr("style")
});
CSS:
a.active{
background:#ff3fff;
}
jQuery:
function removeActive(){
$("a").removeClass("active");
}
$("a").click(function( e ){
e.preventDefault();
removeActive();
$(this).addClass("active");
});
$("#btn").click(removeActive);