#javascript #css
#javascript #css
Вопрос:
Я хочу изменить цвет кнопки при нажатии с помощью этого кода
$('.vote').click(function(){
var self = $(this);
var type = $(this).data("type");
var action = $(this).data("action");
var parent = self.parent();
if(!(status == '1')){
if(type == '1'){
self.css("color","orange");
}
else if(type == '2'){
self.css("color":"red"});
}
}
});
И это не работает. Но когда я пытаюсь поместить эту строку self.css("color","orange");
за пределы оператора IF, она работает :
$('.vote').click(function(){
var self = $(this);
var type = $(this).data("type");
var action = $(this).data("action");
var parent = self.parent();
self.css("color","orange");
if(!(status == '1')){
if(type == '1'){
//if statement here
}
else if(type == '2'){
//if statement here
}
}
});
Проблема в том, что это не то, что я хочу, чтобы произошло. Как я могу это сделать, используя первый приведенный выше код.
Комментарии:
1. Я предполагаю, что либо статус равен единице, либо тип не равен 1.
2. Похоже, что ваша проблема связана не с методом jQuery css, но ваша условная логика (операторы if) гарантирует, что «тип» и «статус» соответствуют вашим ожиданиям
3. это моя вина… Я не заметил, что изменил тип с 1 и 2 на ‘up’ и ‘down’. Так что спасибо, что указали на это
Ответ №1:
Проблема, похоже, в следующей строке :
self.css("color":"red"});
Вы пропустили, чтобы открыть скобку {
здесь :
self.css({"color":"red"});
_________^
Или просто используйте запятую ,
, как вы делаете в первом примере :
self.css("color","red");
Надеюсь, это поможет.
var status = '2';
$('.vote').click(function(){
var self = $(this);
var type = $(this).data("type");
var action = $(this).data("action");
var parent = self.parent();
if(!(status == '1')){
if(type == '1'){
self.css("color","orange");
}
else if(type == '2'){
self.css({"color":"red"});
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class='vote' data-type='1'>Vote type 1</button>
<button class='vote' data-type='2'>Vote type 2</button>
Комментарии:
1. спасибо, я думаю, что нашел проблему сам… это в части html, но я думаю, что я бы не заметил без вашего предложения, так что спасибо