2

一度だけ機能する単純なスクリプトがあります。テーブル行内の任意の場所をクリックすると、スクリプトはチェックボックスをチェックします。ただし、行内を 2 回目、3 回目などとクリックすると、機能しなくなります。なんで?現在、jquery 1.9.1 を使用しています。live()jquery 1.8 をの代わりに使用していたとき、私のスクリプトは以前は機能していましたon()

HTML:

<tr class="row">
    <td><input type="checkbox"></td>
</tr>

jquery:

$(document).ready(function(){
    $("body").on("click",".row",function(){
        var loc = $(this).find('input');
        var ischecked = loc.attr("checked");
        if(ischecked) {
            loc.attr("checked", false);
        } else {
            loc.attr("checked", true);
        }
    });
});
4

2 に答える 2

1

以下のように attr を prop に置き換える必要があります

$(document).ready(function(){
    $("body").on("click",".row",function(){
        var loc = $(this).find('input');
        var ischecked = loc.attr("checked");
        if(ischecked) {
            loc.prop("checked", false);
        } else {
            loc.prop("checked", true);
        }
    });
});

jsfiddler

于 2013-04-04T04:07:23.597 に答える