如何点击链接并获得其颜色?

时间:2012-08-31 14:10:32

标签: jquery css jquery-selectors anchor

好的,这听起来很简单,使用jquery的'click'功能。

问题是我想要链接的原始颜色而不是其悬停的颜色 - 例如如果链接是绿色且悬停状态为橙色,我会抓住绿色。

我尽我所能并在fiddle

中展示了它

有人有任何想法吗?

编辑:道歉,但随着一些鹰眼的发现(感谢他们指出来)绿色实际上是“rgb(0,128,0)”,而不是rgb(0 ,255,0)如我原来的小提琴所示。

5 个答案:

答案 0 :(得分:14)

将其存储在jQuery's data对象中:

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

这是你的小提琴:http://jsfiddle.net/sVDYe/4/


为了获得更好的性能,我在循环中使用the static methodsThey're much faster

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

这是小提琴:http://jsfiddle.net/sVDYe/13/

答案 1 :(得分:1)

尝试以下方法..

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)

答案 2 :(得分:1)

答案 3 :(得分:1)

您可以使用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)

答案 4 :(得分:-1)

检查一下它肯定会起作用

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