0

我正在使用 jQuery 1.8.3。我想触发每个复选框状态更改。

当我把它放在点击事件中时,这段代码正在工作:

$("#btn_off").click(function(){
   $( "tr td input" ).each(function( index ) 
   {
    if ($(this).is(":checked"))
    {
       //some code
    }
   });
});

但是当我使用此代码时,它不是:

$('tr td input').live('change', function(){ 
    if(this.checked)
    {
       //something
    }
});

然后我尝试过:

$('tr td input').on('change', function(){ 
    if(this.checked)
    {
       //something
    }
});

并具有以下内容:

$('tr td :checkbox').change(function() { 
    if(this.checked)
    {
       //something
    }
});

我究竟做错了什么?此代码位于“.ready() 这是网站上唯一的复选框”中,因此我确信它selector应该可以工作...

4

5 回答 5

0

您可以使用click事件:

$('tr td input').on("click", function() {
    if ($(this).is(':checked')) {

    }
});
于 2013-07-10T08:29:10.777 回答
0

试试这个,你必须使用 $(this).is(':checked') 而不是 this.checked

HTML

<table>
    <tr>
        <td><input type="checkbox"/> </td>
    </tr>
    <tr>
        <td><input type="checkbox"/> </td>
    </tr>
    <tr>
        <td><input type="checkbox"/> </td>
    </tr>
</table>

JS

$(document).ready(function() {
    $('tr td input[type="checkbox"]').on('change', function(){
        if($(this).is(':checked'))
            alert('checked');
        else
            alert('not checked');
    });
});

小提琴:http: //jsfiddle.net/nuxbox/vxyHq/

于 2013-07-10T08:32:26.277 回答
0

这有帮助吗?: http: //jsfiddle.net/msapD/3/

$(document).ready(function(){
    $('tr td input').change(function() { 
        if(this.checked)
        {
           alert("Checked");
        }
    });
});
于 2013-07-10T08:37:25.107 回答
0

您需要检查已检查的属性

$('input').on('change',function(){
    if($(this).prop('checked'))
        alert('checked');
    else
        alert('unchecked');
});

检查这个演示

于 2013-07-10T09:07:28.407 回答
0
$(document).ready(function(){
    $('body').delegate('td input:checkbox','click',function() { 
        if($(this).is(':checked'))
        {
           alert("Checked");
        }
    });
});
于 2013-07-10T09:02:11.293 回答