0

我有这个代码。

        var check = true;
        $('#selectall').click(function () {
            $("form input[type='checkbox']").attr ("checked", true);
            if (check){
                check = false;
                $('#checktodos').attr("src", "check_off.png");
            }
            else {
                $('#checktodos').attr("src", "check_on.png");
                $("form input[type='checkbox']").attr ("checked", false);
            }
        });

当我单击 ID = "selectall" 的按钮时,所有复选框都被选中,并且图像按钮发生变化。然后我再次单击同一个按钮,所有复选框都未选中,图像再次变为第一个。

但我不能再这样做了,我第三次点击按钮,图像按钮没有改变,也没有选中任何复选框。我想无限次这样做。

4

1 回答 1

0

尝试将以下内容添加到您的 else 条件中:

check = true;

您将 var check 设置为 false,但永远不会返回 true。

更新:

JSFiddle 示例:http: //jsfiddle.net/4ZzUc/

您似乎正在使用 jQuery > 1.5 的版本,因此您需要使用 .prop("checked", true); 而不是 .attr("checked", true);

于 2013-02-16T18:40:32.503 回答