Jquery добавляет класс родительскому фону ввода
У меня есть контактная форма. Я хочу добавить класс в родительский div окна ввода на вкладке: focus.
Вот fiddle. Я хочу, чтобы не только поле ввода, но цвет фона div должен измениться на фиолетовый на фокусе ввода.
Разметка:
<div class="round">
<div class="round_label">name</div>
<input type="text" class="round_text">
</div>
JavaScript:
jQuery(document).ready(function($) {
$(".round_text:focus").parent().css('background', '#8b66ac');
$('.round_text:focus').parent().css('background-color', 'red');
});
CSS
.round {
background: none repeat scroll 0 0 #F3F3F3;
border-radius: 30px 30px 30px 30px;
border-top: 1px solid #B2B2B2;
height: 50px;
padding-left: 20px;
width: 440px;
}
.round_text:focus {
background: none repeat scroll 0 0 #8b66ac;
}
.round_label {
border-right: 1px solid #D1D1D1;
color: #B6B6B6;
float: left;
font-size: 16px;
height: 40px;
padding-top: 10px;
width: 156px;
}
.round_text {
background: none repeat scroll 0 0 #F3F3F3;
border: medium none;
color: #424242;
float: left;
height: 50px;
width: 240px;
}
Также, можете ли вы мне помочь, как будто мне нужно добавить два свойства, например:
$(".round_text").focus(function(){
$(this).parent().css('background', '#8b66ac','color','#fff');
}).blur(function(){
$(this).parent().css('background', /*color*/);
})
Ответы
Ответ 1
Вместо этого вы можете добавить класс и указать стиль
jQuery(document).ready(function($) {
$(".text").focus(function(){
$(this).parent().removeClass("round");
$(this).parent().addClass("bluebg");
}).blur(function(){
$(this).parent().removeClass("bluebg");
$(this).parent().addClass("round");
})
});
.bluebg {
background: none repeat scroll 0 0 #8b66ac;
color:#623886;
}
Ответ 2
Использовать событие фокусировки
$(".round_text").focus(function(){
$(this).parent().css('background', '#8b66ac');
}).blur(function(){
$(this).parent().css('background', /*color*/);
})
EDIT: альтернативное решение, использующее toggleClass()
CSS
.round_text:focus, .round.is_focused {
background: none repeat scroll 0 0 #8b66ac;
}
JS
$(".round_text").on('focus blur', function(){
$(this).parent().toggleClass('is_focused');
})
Ответ 3
Попробуйте это
$("input").on("focus",function(){
$(this).parent().addClass("any_class").css("background","purple");
});
Ответ 4
Если я правильно задаю вопрос,
Вы выбираете элементы focused
, но вам нужно изменить css родительского div
на событие focus
.
Сделайте это,
jQuery(document).ready(function($) {
$(".round_text").focus(function(){
$(this).parent().css('background', '#8b66ac');
})
});
Fiddle