2012-08-01 45 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'); 
});​ 

希望這將幫助你。

相關問題