IE JQuery занимает два клика для работы - PullRequest
0 голосов
/ 13 июля 2010

Я пытаюсь установить флажок, который проверяет все дочерние флажки, например, в виде дерева.Следующие коды прекрасно работают в Firefox и Chrome, но в IE для его работы требуется два клика.Чего мне не хватает?

HTML

<input type="checkbox" name="org" value="orgs" id="orgs" />
<label for="All">Organizations</label>

<ul id="orglist">
    <li>
            <input type="checkbox" name="org" value="1" id="1" />
            <label for="1">Org 1</label>
    </li>
    <li>
            <input type="checkbox" name="org" value="1" id="2" />
            <label for="2">Org 2</label>
    </li>
</ul>

Javascript / Jquery

$(document).ready(function () {
    $("#orgs").change(function () {

        if ($(this).attr("checked")) {
            $("#navform #orglist :checkbox").attr("checked", true);
        }
        else {
            $("#navform #orglist :checkbox").attr("checked", false);
        }
    });
});

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Для меня проблема была в том, что я просто использовал checked, а не checked="checked".Тупая ошибка, но, надеюсь, это кому-нибудь поможет.

0 голосов
/ 13 июля 2010

Вместо поиска атрибута, пусть jQuery сделает больше работы:

if ($(this).is(":checked")) {
    $("#navform #orglist :checkbox").attr("checked", "checked");
}
else {
    $("#navform #orglist :checkbox").removeAttr("checked");
}
0 голосов
/ 13 июля 2010

Скорее всего, состояние флажка вызывает сомнения у IE. Попробуйте установить для свойства selected значение false или что-то еще при начальной загрузке страницы. Например:

<input type="checkbox" name="or" value="1" id="1" checked="false" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...