2012-08-31 26 views
10

好的,所以這聽起來很簡單,使用jquery的'點擊'功能。如何點擊鏈接並獲取其顏色?

事情是我想要鏈接的原始顏色而不是它的徘徊顏色 - 例如,如果鏈接爲綠色且懸停狀態爲橙色,則我將獲取綠色。

我試過是最好的,我可以和它在一個fiddle

任何人都表示有什麼想法?

編輯:道歉,但作爲一些老鷹的眼睛已經發現(感謝他們指出)綠色實際上是「rgb(0,128,0)」,不是rgb(0,255,0 )如我原來的小提琴中所示。

+2

''my link綠色 – karim79

+0

是'(0,128,0)'對我來說,通過的方式。 – pimvdb

回答

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 methods在循環。 They're much faster

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

這裏的小提琴:http://jsfiddle.net/sVDYe/13/

+0

Ooooooh,這真的很聰明!我在那裏搜索了幾天,每次都打敗我 - 謝謝! – Steve

-1

檢查這將肯定

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

不是我正在尋找的東西 - 我正在嘗試獲取顏色,而不是設置它或切換它,但無論如何都要感謝。 – Steve

1

工作,可以嘗試下面的方法..

DEMOhttp://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)

+0

'appendTo('body')'?級聯並不真的那樣...... –

+0

@JosephSilber你是什麼意思? –

+0

恐怕這不起作用,因爲CSS規則可能非常具體。例如,如果規則爲'.container> a {color:...}'因爲它與克隆不匹配。 – pimvdb

1

可以使用,而不是CSS jQuery的處理顏色的變化,並將其存儲:

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)

+0

謝謝 - 我錯過了那個 - 你說得對。 – Steve