Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, bom dia, estou com um probleminha, estou com uma lista no qual tem um checkbox, também tenho um checkbox que denominei com a classe checkAll, quando eu clico e seleciono o checkAll ele seleciona todos so check da lista e quando clico e de seleciono o checkAll ele remove o checked dos os checkbox das lista. esta funcionando tudo certo no ie9 para cima, no firefox e no chrome, mais no ie8 e ie7 não funciona. segue o código
$(".checkAll").click(function(){
var check = $(this).prop("checked");
if(check == true){
$(".check").parent().css({
background: "url(images/check-on.png) no-repeat"
});
$(".check").prop("checked", true);
}
});
$(".checkAll").click(function(){
var check = $(this).prop("checked");
if(check == false){
$(".check").parent().css({
background: "url(images/check-off.png) no-repeat"
});
$(".check").prop("checked", false);
}
});William valeu por responder, fiz o teste aqui mais novamente funcionou em todos o navegadores com exceção do i8 e ie7
Como ficou o código agora ?
Vc tem DOCTYPE na sua página ?
William segue o código, alem de não funcionar no ie8 e ie7, só funciona na primeira vez, depois não funciona mais, também tentei usando um segundo IF no lugar no ELSE, também tentei com on() no lugar do click(), mais o resultado foi o mesmo.
$(".checkAll").click(function(){
if($(this).is(":checked")){
$(".check").parent().css({
background: "url(images/check-on.png) no-repeat"
});
$(".check").attr("checked", true);
}else{
$(".check").parent().css({
background: "url(images/check-off.png) no-repeat"
});
$(".check").attr("checked", false);
}
});Hum.. é cara, parece mesmo ser um bug da nova versão do jQuery. Testei com uma um pouco antiga, e funciona perfeitamente:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
All:<input type="checkbox" class="checkAll">
<br><br>
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
var $checks = $(".check");
$(".checkAll").on("click", function(){
if($(this).is(":checked")) {
$checks.attr("checked", "checked");
} else {
$checks.removeAttr("checked");
}
});
</script>
</body>
</html>ah legal, eu coloquei um comentário condicional para IE8 e inferiores usar a versão 1.11.1 e o restante usa a versão 2.1.1. Vou mudar a versão do jquery do comentário condicional.
Obrigado pela atenção
Realmente, com uma versão mais antiga funciona menos no ie8 e ie7, esse ie é uma borcaria mesmo rrss.
no lugar de:
use:if($(this).is(":checked")){
E no lugar de:
$(".check").prop("checked", true);use
$(".check").attr("checked", true);use