Кто-нибудь когда-нибудь сталкивался с такой ситуацией?
У меня есть метод JQuery, который хорошо работает с селекторами и флажками КАК ДОЛГО, поскольку они расположены как предопределенные (флажок select =>).Но в тот момент, когда я позиционирую их наоборот (checkbox <= select), «эффекты» метода на флажках как-то «меняются местами» (флажок, который должен быть отключен, отсутствует, а тот, который должен быть включен, вместо этого отключен),Кроме того, это происходит не во всех случаях, а скорее «по парам» (когда флажок должен быть включен, а это не так, следующий флажок включается, когда этого не следует, а затем снова возвращается в нормальное состояние до следующего разачто-то происходит). </p>
Я говорю о двух больших div с плавающим влево и вправо, каждый из которых связывается с серией дочерних div с помощью выбора и флажка внутри каждого дочернего div;селекторы и флажки не «инвертированы» в левом большом div и инвертированы в правом большом div.
Следует отметить, что это влияет только на «инвертированные» флажки.Выбирает работу, как и ожидалось, независимо от того, как она позиционируется.
Я пытался отделить (путем создания правильного селектора JQuery) эти конфликтующие флажки по идентификатору родительского div, по классу select и т. Д. Безрезультатно.Все работает хорошо, если все элементы расположены как селекторы слева и флажки справа.
Код:
<div>
<div style="width: 49.5%; float: left;">
<div>
<select id="select_01">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
<input id="check_box_01" type="checkbox" />
</div>
<div>
<select id="select_02">
<option value="first" selected="selected">First option</option>
<option value="">Whatever as prompt...</option>
</select>
<input id="check_box_02" type="checkbox" />
</div>
<div>
<select id="select_03">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
<input id="check_box_03" type="checkbox" />
</div>
<div>
<select id="select_04">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
<input id="check_box_04" type="checkbox" />
</div>
</div>
<div style="width: 49.5%; float: right;">
<div>
<input id="check_box_05" type="checkbox" />
<select id="select_05">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
</div>
<div style="border: 1px solid red;">
<input id="check_box_06" type="checkbox" />
<select id="select_06">
<option value="first" selected="selected">First option</option>
<option value="">Whatever as prompt...</option>
</select>
</div>
<div style="border: 1px solid red;">
<input id="check_box_07" type="checkbox" />
<select id="select_07">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
</div>
<div>
<input id="check_box_08" type="checkbox" />
<select id="select_08">
<option value="">Whatever as prompt...</option>
<option value="first">First option</option>
</select>
</div>
</div>
</div>
$(document).ready(function() {
$("select, :checkbox").each(function() {
if ($(this).is("select")) {
mySelectId = $("#" + $(this).attr("id"));
if (mySelectId.attr("value") === "") {
mySelectId.css({
"background": "#D3D3D3"
});
}
} else if ($(this).is(":checkbox")) {
myCheckboxId = $("#" + $(this).attr("id"));
if (mySelectId.attr("value") === "") {
myCheckboxId.attr("disabled", "disabled");
}
}
});
});
И проблема:
снимок экрана проблемы
Вы можете взаимодействовать с кодом, если хотите: http://jsfiddle.net/CarlosPF/Unbsb/
Любая помощь или предложения будут высоко оценены.Заранее всем спасибо.
Кстати, метод заключается в том, чтобы затемнять эти выделения, не выбрав ничего, и отключив соответствующие флажки (или наоборот)