IE jquery需要两次点击才能工作

时间:2010-07-13 00:41:16

标签: jquery internet-explorer

我正在尝试设置一个复选框,检查所有子复选框,如树视图。以下代码在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 个答案:

答案 0 :(得分:1)

对我来说问题是我只使用checked而不是checked="checked"。愚蠢的错误,但希望有助于某人。

答案 1 :(得分:0)

对于IE,很可能复选框的状态存在疑问。尝试将checked属性设置为false或初始页面加载时的任何内容。例如:

<input type="checkbox" name="or" value="1" id="1" checked="false" />

答案 2 :(得分:0)

不要寻找属性,让jQuery做更多工作:

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