2012-08-01 47 views
0

有链接列表,如何使用jquery更改仅点击链接的背景颜色并将其返回原始颜色如果我点击另一个链接?如何使用jquery更改仅点击链接的背景颜色

+0

这取决于您没有发布的标记结构! – adeneo 2012-08-01 09:38:48

+0

发布你的标记。 – Vins 2012-08-01 09:39:59

+0

所以你想要最后点击的链接已突出显示? :-) – Stano 2012-08-01 09:40:24

回答

2

也许这样的基本?

$("#linkDivWrapper").on("click", ".linkClass", function() { 
    $(this).css({'background-color': '#ccc'}); 
}); ​ 
+0

为什么你需要委托事件? – adeneo 2012-08-01 09:49:19

+0

所以我不必初始化页面上的“a”元素的每个实例只加载包装 – johnnyarguelles 2012-08-01 09:58:12

+0

对元素的hundres或可能被动态替换的元素有意义,并且页面加载时绑定速度会更快,但你每次点击都会付钱。 – adeneo 2012-08-01 10:05:39

3

这应该为你做的:

$("a").click(function(event) 
{ 
    $("a").css('background-color', ''); 
    $(this).css('background-color', 'red'); 
}); 

在现实世界中,你可能会用一个div或东西在里面的链接,所以它应该是这样的:

<div id="divName"> 
<a href="#">Link</a> 
<a href="#">Link</a> 
<a href="#">Link</a> 
</div> 
​ 
<script language="javascript"> 

$("#divName a").click(function(event) 
{ 
    $("a").css('background-color', ''); 
    $(this).css('background-color', 'red'); 
}); 

</script> 
+0

感谢它的工作:) – 2012-08-01 10:06:28

+0

不用客气巴彦K :)请接受适合您的答案; ) – 2012-08-01 10:12:36

1

非常普遍,因为没有标记发布,并针对所有<a>元素,并防止默认操作,因为去新页面会使突出显示t他联系起来好看不中用:

var elems = $('a'); //select all a elements, could use class instead; 

elems.on('click', function(e) { 
    e.preventDefault(); //prevent default action 
    $(this).addClass('highlight'); //add highlight class to clicked 
    elems.not(this).removeClass('highlight'); //remove highlight class from others 
}); 
0

Check this jsfiddle demo

HTML:

<ul id="menu"> 
    <li><a href="#">Link 1</a></li> 
    <li><a href="#">Link 2</a></li> 
    <li><a href="#">Link 3</a></li> 
</ul​​​​​​​​​​​​​​>​​​​​​​​ 

脚本:

$("#menu li a").click(function(event) 
{ 
    $("li a").css('background', ''); 
    $(this).css('background', '#f5c491'); 
});​ 

希望这将帮助你。