0

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

此代码的工作,当我把它的单击事件中:

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

但是当我使用这个代码,它不是:

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

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

然后我有试过

以及以下内容:

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

我在做什么错?此代码位于.ready() 这是网站,所以我敢肯定,selector应该工作的唯一复选框...

+0

我认为你应该在最后三种情况下使用$(this).is(“:checked”),而不是this.checked –

+0

@JonasGrumann我不这么认为 –

+0

你能分享你的代码吗? jsfiddle – Praveen

回答

0

您可以使用click事件:

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

    } 
}); 
+0

我已经尝试点击也没有 –

+0

请分享您的HTML代码以及。 – mishik

0

试试这个,你有使用$(本)。是( ':检查'),而不是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/

+0

'this.checked'也适用于你的小提琴。 – mohkhan

+0

我知道这应该有效,但不是......没有任何事情被触发。 –

+0

你的意思是你没有看到弹出的警报? –

0

这是否帮助?:http://jsfiddle.net/msapD/3/

$(document).ready(function(){ 
    $('tr td input').change(function() { 
     if(this.checked) 
     { 
      alert("Checked"); 
     } 
    }); 
}); 
+0

试过它,仍然不工作 –

+0

我摆出的jsfiddle与我所提出的工作。 然后必须有某种形式的问题或冲突。你可以把你的工作放在jsfiddle吗?我不介意看看它。 – Grallen

0
$(document).ready(function(){ 
    $('body').delegate('td input:checkbox','click',function() { 
     if($(this).is(':checked')) 
     { 
      alert("Checked"); 
     } 
    }); 
}); 
0

您需要检查与财产检查

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

选中此demo

+0

此外,请检查您使用的jQuery版本应该是1.7或更高,因为实时已从1.7弃用 –

+0

@ user123_456这是否解决您的问题? –