0

我想制作一个在您单击时突出显示的 URL 列表,问题是任何时候都应该突出显示一个链接。

我能够让重置按钮工作。使用过removeAttr) - $("a").removeAttr("style")- (这样做有什么负面影响吗?)

但我不能让它一次只做一个亮点。

有人可以帮助我提供一次仅突出显示一个链接的示例代码吗?现在,可以突出显示多个链接。

我能够在 Jsfiddle http://jsfiddle.net/M3vVw/3/上做一个例子

4

4 回答 4

2

我建议这样做:创建一个 CSS 规则并将其应用于您单击的元素,首先从所有链接中删除相同的样式。

jQuery

$("a").click(function () {
    $('a').removeClass('back');
    $(this).addClass('back');
});
$("#btn").click(function () {
    $("a").removeClass("back")
});

CSS

.back {
    background-color: #ff3fff;
}

jsFiddle 示例

于 2013-04-12T15:19:42.867 回答
0

我建议使用addClass()(正如adeneo 已经建议的那样),但如果你必须使用attr()

$('a').click(function(){
    var that = $(this);
    that.css("backgroundColor", "#ff3fff").closest('li').siblings().find('a').attr('style', '');
});

JS 小提琴演示

或者:

$('a').click(function(){
    var that = $(this);
    that.css("backgroundColor", "#ff3fff").closest('li').siblings().find('a').removeAttr('style');
});

JS 小提琴演示

请记住,使用attr()/removeAttr()具有令人难以置信的破坏性,并且需要更多的工作和维护(您必须每次都显式地重构每个样式元素属性的 CSS );/效率更高,因为它包含所有外部样式,在需要时可以轻松地向元素添加/删除该样式。addClass()removeClass()

参考:

于 2013-04-12T15:20:40.863 回答
0

你可以使用这个:

$("a").click(function()
{
      $(this).css("backgroundColor", "#ff3fff");
      $("a").not($(this)).removeAttr("style");
});

$("#btn").click(function(){
   $("a").removeAttr("style")
});
于 2013-04-12T15:20:47.207 回答
0

LIVE DEMO

CSS:

a.active{
    background:#ff3fff;
}

jQuery:

function removeActive(){
    $("a").removeClass("active");
}

$("a").click(function( e ){
    e.preventDefault();
    removeActive();
    $(this).addClass("active");
});

$("#btn").click(removeActive);
于 2013-04-12T15:25:52.373 回答