2013-06-14 2 views
1

나는 5x5 상자의 매트릭스를 만들었습니다. 링크를 클릭하고 해당 링크를 클릭 한 후 동적으로 색상을 변경하고 싶습니다 (한 번에 하나씩) - 한 번에 하나씩. 그러나 현재 코드에서는 클릭 한 특정 링크가 아닌 모든 링크로 색상이 변경됩니다.동적으로 CSS 변경

HTML :

<ul id="rowOne" class="center"> 
    <li><a href="#">$100</a></li> 
    <li><a href="#">$100</a></li> 
    <li><a href="#">$100</a></li> 
    <li><a href="#">$100</a></li> 
    <li><a href="#">$100</a></li> 
</ul> 

JQuery와 :

$('a').click(function(){ 
$.each('a').css({'color':'#002290'}); 
}); 

어떤 제안이?

+0

'$의 .each ('A') CSS는 (..)'중복 - 당신은이 '각()', JQuery와 모든'에 .css()'적용 할 필요가 없습니다 일치하는 요소. – Spudley

+1

또한 (더 답변에), 나는 요소의 CSS를 직접 변경하는 것이 아니라'addClass()'/'removeClass()'를 사용하는 것이 좋습니다. –

답변

4

당신은이 작업을 수행 할 필요가 -

$('a').click(function(){ 
    $(this).css({'color':'#002290'}); 
}); 
+0

정답을 주셔서 감사합니다 – justLearning

7

코드는 "어떤 <a>을 클릭하면, <a> 모든 이상 요소 ($.each...)를 반복하고 자신의 CSS를 변경"말했다. 당신은 jQuery의 이벤트 콜백에서 this를 통해 사용할 수있는 클릭 요소에 변경 사항을 적용해야합니다 (객체를 구축 할 때 당신은 또한 키 주변 (color를) 인용 부호를 생략 할 수 있습니다

$('a').click(function(){ 
    $(this).css({'color':'#002290'}); 
}); 

재산 아무튼 경우 '는 t는 ...)

$(this).css({color: '#002290'}); 

를 하이픈을 포함 ... 또는 하나의 속성을 설정하는 객체를 완전히 생략하고 두 개의 분리 된 문자열 매개 변수로 이름과 값을 전달 :

$(this).css('color', '#002290'); 
+0

정답을 주셔서 감사합니다 – justLearning

+0

현재 링크에 색을 적용하기 전에 이전에 클릭 한 링크를 제거해야합니다. –

+0

@Baadshah 어쩌면 그 질문의 범위를 벗어나므로 그 질문에서 묻는 질문에 대해 더 많이 읽고있는 것입니다. – meagar

1

a 태그를 다시 변경 하시려면 .Dont 클릭하기 전에 모든 태그 색상을 제거하지 마십시오. .

$('a').click(function(){  
    $('a').css('color', '');   
    $(this).css({'color':'#002290'}); //current tag 
}); 
+0

정답을 보내 주셔서 감사합니다. – justLearning