2014-07-02 3 views
0

** я пытаюсь поставить обработчик событий на основе состояния CSS и он не работает, любая помощь пожалуйста ** вот мой HTML код:Javascript и события JQuery обработчик

<!Doctype html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>jquery test</title> 
<style> 
.x{color:red;} 
</style> 
</head> 
<body> 
    <input id="trigger" type="button" value="test"/> 
<p class="x" >some text</p> 
<p>another text</p> 
<script type="text/javascript" src="js/jQuery.js"></script> 
<script type="text/javascript" src="js/match.js"></script> 
</body> 
</html> 

и здесь код JQuery:

$('#trigger').click(function(){ 
    if($('p.x').css("color") === "red") 
    { 
     var text= $('p').text(); 
     alert(text); 
    } 
}); 
+7

браузер не возвращает 'red', который вы могли бы разобрался с просто протоколирование значение, она возвращает RGB (A) цвета. – adeneo

+0

Этот ответ может помочь понять, как это работает: http://stackoverflow.com/a/6177502/1249581. – VisioN

+0

Возможно, было бы легче проверить класс, а не проверять цвет. Есть ли причина, по которой вы хотите сделать это так? – Razzildinho

ответ

0

Работа JSFiddle

Как сказал adeneo, 'красный' преобразуется в RGB.

Javascript:

$('#trigger').click(function(){ 
    if($('p.x').css("color") == 'rgb(255, 0, 0)'){ 
     var text= $('p.x').text(); 
     alert(text); 
    } 
}); 
+0

, если вы просто ответили уже предоставленным в комментариях, вы могли бы по крайней мере обеспечить надлежащие js. как сказать ему .click - плохая практика из-за медлительности. и лучше использовать (например, «щелчок»). – gulty

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