我正在使用jQuery 1.8.3。我想触发每个复选框状态更改。
当我把它放在click事件中时,这段代码正常工作:
$("#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
应该有效...
答案 0 :(得分:0)
您可以使用click
事件:
$('tr td input').on("click", function() {
if ($(this).is(':checked')) {
}
});
答案 1 :(得分: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');
});
});
答案 2 :(得分:0)
这有用吗?:http://jsfiddle.net/msapD/3/
$(document).ready(function(){
$('tr td input').change(function() {
if(this.checked)
{
alert("Checked");
}
});
});
答案 3 :(得分:0)
$(document).ready(function(){
$('body').delegate('td input:checkbox','click',function() {
if($(this).is(':checked'))
{
alert("Checked");
}
});
});
答案 4 :(得分:0)
您需要检查已检查的属性
$('input').on('change',function(){
if($(this).prop('checked'))
alert('checked');
else
alert('unchecked');
});
选中此demo