Ниже вы увидите код, над которым я работаю, и включенный JSFiddle.При щелчке по радио добавлен класс, но радио не выбрано
Выпуск:
- Когда я нажимаю на радио или CheckBox класс добавляется, но радио или флажок не установлен.
Пожалуйста, объясните код, чтобы я мог узнать об этом. Если у вас нет решения, любые подсказки или направление также будут полезны. Заранее спасибо!
http://jsfiddle.net/nLgqhqwc/6/
HTML
<div class="panel">
<input type="text"/>
</div>
<div class="panel">
<input type="text"/>
</div>
<div class="panel">
<select>
<option>option</option>
</select>
</div>
<div class="panel">
<input type="radio"/>
</div>
<div class="panel">
<input type="checkbox"/>
</div>
CSS
.panel{
padding:15px;
background:grey;
margin-bottom:15px;
}
.panel-primary{
margin:0 15px 0 15px;
background:blue;
margin-bottom:15px;
}
JQuery
$(document).ready(function() {
$('.panel').click(function() {
event.stopPropagation();
$('.panel').removeClass('panel-primary');
$(this).addClass('panel-primary');
});
$('input, select').bind('focus blur', function (event) {
event.stopPropagation();
$('.panel').removeClass('panel-primary');
$(this).closest(".panel").addClass('panel-primary');
});
$('input[type=radio]').change(function() {
event.stopPropagation();
$('.panel').removeClass('panel-primary mrgn-lft-lg');
$(this).closest(".panel").addClass('panel-primary');
});
});
Проблема, похоже, связана с перемещением маржи при фокусировке или нажатии. Попробуйте избавиться от левого поля в CSS. http://jsfiddle.net/j08691/50s3a6eb/ – j08691
Я бы ожидал, что распространение будет не основано на местоположении, а иерархии в DOM? Возможно, вычисление, если элемент был ударил, не использует значение кешированной позиции ... – Dennis