2013-06-14 3 views
1

Я создал матрицу из ящиков размером 5x5. Я бы хотел щелкнуть ссылку, и эта ссылка динамически меняет цвет после того, как я щелкнул его (a: побывал) - по одному. Однако в моем текущем коде он меняет цвет на все ссылки, а не на тот, который я нажал.Динамическое изменение 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 ('а') CSS (..)' избыточен - вы не нуждаетесь в 'каждый()', JQuery будет применяться '.css()' для всех соответствующие элементы. – Spudley

+1

Также (в дополнение к ответам) я бы предложил использовать 'addClass()'/'removeClass()' вместо прямого изменения CSS элемента (ов). –

ответ

4

Вы должны сделать это -

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

Спасибо за правильный ответ – justLearning

7

Ваш код говорит: "Когда любой <a> щелкают, перебрать все<a> элементы ($.each...) и изменить свой CSS". Вам нужно, чтобы применить изменения только к щелкнул элемент, который доступен через this в обратных вызовах событий JQuery в:

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

Вы также можете опустить кавычки ключей (color) при создании объекта (если свойство Безразлично «т содержат дефис) ...

$(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

Смежные вопросы