У меня есть обзорный список с div, а также у каждого div есть пара, которая содержит все детали.Если вы нажмете на div «intro», детальная пара откроется, а вступление будет скрыто.У каждого элемента div есть флажок.И я столкнулся с проблемой: если я нажму флажок div «intro», подробный div будет открыт, потому что событие click также происходит и во вводном div.Я придумал решение, такое как использование внешнего диапазона, в котором я храню все открытые идентификаторы.
<div class="divIntroHolder" id="divIntroHolder15">
<span class="spanChkHolder"><input type="checkbox" name="Nr" value="15" class="chkMessage" id="chkMessage15"/></span>
</div>
<div class="divDetailHolder" id="divDetailHolder15">
<div class="divPicContainer">
<span class="spanChkHolder"><input type="checkbox" name="Nr" value="15" class="chkMessage"/></span>
</div>
</div>
для этого у меня есть js как этот
$(document).ready(function () {
$(".divIntroHolder").click(function () {
var id = getId($(this).attr("id"));
if (!isOpen("spanOpenDivs", id)) { //check if the div is open or not
addTo("spanOpenDivs", id); // add to span
$(this).hide();
$("#divDetailHolder" + id).show();
} else {
removeFrom("spanOpenDivs", id); //remove from the span
}
});
$(".chkMessage").click(function () {
var id = $(this).val();
//prevent opening the detailed div
if (!isOpen("spanOpenDivs", id))
addTo("spanOpenDivs", id);
var clicked = $(this);
$(".chkMessage").each(function () {
if ($(this).val() == id) {
$(this).attr("checked", clicked.attr("checked"));
}
});
});
});
Это делает js немного сложнее, и я предполагаю, что должен быть более простой способ выделить флажок щелчкомсобытие.Не имеет значения, если флажок установлен или не установлен, но он должен просто отфильтровывать событие щелчка.
Если у кого-то есть простое решение по этому вопросу, было бы очень признательно =)