Как использовать jQuery для изменения цвета фона текстового поля?

Как использовать jQuery для изменения цвета фона текстового поля?


person Community    schedule 03.08.2009    source источник
comment
См. ​​stackoverflow.com/questions/18445711/   -  person liftarn    schedule 12.03.2014


Ответы (3)


Лучшей практикой является отделение пользовательского интерфейса от логики, в вашем случае:

$("#textboxid").addClass("aClass");

Если вам это действительно нужно, то сделайте следующее:

$("#textboxid").css({"background-color": "color"});

Замените #textboxid на нужный селектор и закрасьте нужным цветом.

Обратите внимание, что следующее делает то же самое для одного свойства:

$("#textboxid").css("background-color", "color");
person Dykam    schedule 03.08.2009
comment
Нет необходимости в жестко закодированном представлении в js. Используйте Css для стиля, js для поведения. - person redsquare; 03.08.2009

Лучше добавить имя класса во входные данные, а не стили жесткого кодирования в ваш js. Стили представления должны находиться в css, а не в js.

$('#inputId').addClass('someCssClass');
person redsquare    schedule 03.08.2009
comment
И это также то, что вы делаете сейчас. Я бы сказал, что вы должны добавить семантический класс, а не backgroundRed, я считаю это антипаттерном. И, возможно, код здесь — это код пользовательского интерфейса. - person Dykam; 03.08.2009
comment
это был просто образец....конечно, у вас не должно быть классов для каждого цвета. ну и дела - person redsquare; 03.08.2009
comment
Вы по-прежнему не должны жестко кодировать код в js. Что происходит, когда он хочет границу, а затем другой шрифт. Закончите с уродливым беспорядком js. - person redsquare; 03.08.2009
comment
Ах, вы изменили пример. А вот для UI JS может подойти. - person Dykam; 03.08.2009
comment
js для поведения, а не для добавления css. Зачем усложнять этот addClass? - person redsquare; 03.08.2009
comment
Почему смысловая часть правильная? так что addClass('highlight'); будет подходящей вещью для javascript, а затем таблица стилей укажет, как это выглядит. Теперь вы можете заменить выделение любым случайным описанием, но функция та же. - person DGM; 03.08.2009
comment
Но ваш первоначальный ответ не показал ни одной из этих мыслей. Теперь ты эксперт ;) - person redsquare; 03.08.2009

А еще лучше не используйте jQuery. Я предполагаю, что вы хотите сделать это при фокусировке или размытии, поэтому вы можете сделать:

#textboxid {background-color:defaultcolor;}
#textboxid:focus {background-color:selectedcolor;}
person Andrew    schedule 24.08.2012