Как нажать на ссылку и получить ее цвет?

ОК, так что это звучит просто, используя функцию jquery 'click'.

Дело в том, что я хочу, чтобы ОРИГИНАЛЬНЫЙ цвет ссылки НЕ был зависшим цветом - например. если ссылка зеленая с оранжевым цветом, я хочу захватить ЗЕЛЕНЫЙ цвет.

Я старался как можно лучше и показывал его в fiddle

У кого-нибудь есть идеи?

ИЗМЕНИТЬ: извинения, но, как заметил несколько орлиных глаз (спасибо им за указание), зеленый на самом деле "rgb (0, 128, 0)", NOT rgb (0, 255, 0), как показано в моей оригинальной скрипке.

Ответ 1

Сохраните его в jQuery data object:

$('a').each(function() {
    $(this).data('color', $(this).css('color') );
})
.click(function() {
    alert( $(this).data('color') );
});

Здесь ваша скрипка: http://jsfiddle.net/sVDYe/4/


Для лучшей производительности я бы использовал статические методы в цикле. Они намного быстрее:

$('a').each(function() {
    $.data(this, 'color', $.css(this, 'color') );
});

Здесь скрипка: http://jsfiddle.net/sVDYe/13/

Ответ 2

Попробуйте ниже подход.

DEMO: http://jsfiddle.net/sVDYe/33/

$("a").click(function(e) {
    e.preventDefault();
    var tmpLink =$(this).clone();
    tmpLink.appendTo($(this).parent());    
    var acolor = tmpLink.css("color");
    tmpLink.remove();

    if (acolor == 'rgb(255, 165, 0)') {
        alert('wrong color - its ORANGE =' + acolor);
    } else if (acolor == 'rgb(0, 128, 0)') {
        alert('CORRECT color - its GREEN =' + acolor);
    }
});

Как pimvdb указал.. Зеленый RGB(0,128,0)

Ответ 4

Вы можете обрабатывать изменение цвета с помощью JQuery вместо css и сохранять его:

http://jsfiddle.net/sVDYe/20/

var hoverColor;

$("a").hover(function () {
  hoverColor = $(this).css("color");
  $(this).css("color", 'orange');
}, function () {
  $(this).css("color", 'green');
});

$("a").click(function (e) {
  e.preventDefault();
  var acolor = hoverColor;
  if (acolor == 'rgb(255, 165, 0)') {
    alert('wrong color - its ORANGE =' + acolor);
  } else if (acolor == 'rgb(0, 128, 0)') {
    alert('CORRECT color - its GREEN =' + acolor);
  }
});

Также зеленый

rgb (0, 128, 0)

Ответ 5

проверьте, что это будет работать точно

<script>
    $("a").click(function () {
      $(this).toggleClass("colorclass");
    });
</script>