Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcello.alvess

jquery prop()

Recommended Posts

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);

}

});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

no lugar de:

 

var check = $(this).prop("checked");

if(check == true){
use:

if($(this).is(":checked")){
E no lugar de:

$(".check").prop("checked", true);
use

$(".check").attr("checked", true);
use

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como ficou o código agora ?

 

Vc tem DOCTYPE na sua página ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);

}

});

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>
E com a 1.11.1 ele só funciona a primeira mesmo. Bug do jQuery.

Use js puro ou uma versão antiga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.