2011-03-29 94 views
0

有一个问题在这里,我需要手动检查/取消选中一个复选框。使用 这个代码不工作Jquery复选框检查/取消选中所有工作正常 - 检查/取消选中一个不是

$('input:checkbox').live('click', function(event) { 
    event.preventDefault(); 
    if($(this).attr('checked') == false) { 
    $(this).attr('checked', true); 
    } else { 
    $(this).attr('checked', false); 
    } 
    return false; 
}); 

但使用几乎相同的检查/取消选中所有复选框做工精细...

$(".todos").live('click', function(event) { 
event.preventDefault(); 
$.each($('input[type="checkbox"]'), function(i) { 
    if($(this).hasClass('in_'+que_caixa)) { 
     if($(this).attr('checked') == false) { 
      $(this).attr('checked', true); 
     } else { 
      $(this).attr('checked', false); 
     }    } 
}); 

});

我该怎么办?

感谢

+0

你为什么这样做?浏览器已经这样做了。 – SLaks 2011-03-29 15:20:08

+0

'event.preventDefault()'是关键。如果添加该行,您的第一个代码片段应该可以工作(但@ ssaks正确:复选框控件已经实现了您正在查找的行为)。 – 2011-03-29 15:20:59

回答

1

您需要返回false,因为你做你的检查后,它仍然继续通过事件

$('input[type="checkbox"]').live('click', function(event) { 
    if($(this).attr('checked') == false) { 
    $(this).attr('checked',"checked"); 
    } else { 
    $(this).attr('checked', false); 
    } 
    return false; 
}); 

和喜欢的评论上面的浏览器已经这样做了,为什么你一定要绑定它?

,并在另一方面,可以真正地做到这一点作为一个选择:

$("input:checkbox") 
+0

无效:-( – Pluda 2011-03-29 15:41:35

+0

我需要这个,因为我在手风琴里创建了复选框。当我点击复选框时,手风琴打开,但复选框没有被选中... – Pluda 2011-03-29 15:43:06

+0

这是一个移动应用程序,我没有在线显示,对不起。将代码更改为'code'$('input:checkbox')。live('click',function(event){ \t event.preventDefault(); \t如果($(本).attr( '检查')== FALSE){ \t \t $(本).attr( '检查',真); \t}其他{ \t \t $(本).attr ('checked',false); \t} \t返回false; });'code' – Pluda 2011-03-29 15:44:26

0

浏览器已经切换的复选框为您服务。
您的代码第二次切换,所以没有任何反应。

相关问题