77 votes

Pourquoi jquery fadeIn () ne fonctionne-t-il pas avec .html ()?

Lorsque vous cliquez sur une case à cocher, je souhaite que le message s’installe lentement.

Pourquoi .fadeIn () ne fonctionne-t-il pas dans cet exemple?

HTML:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    	<title>Text XHTML Page</title>
    	<link href="css/main.css" rel="stylesheet" type="text/css" media="all"/>
    	<script type="text/javascript" src="http://www.google.com/jsapi"></script>
    	<script type="text/javascript" src="javascript/main.js"></script>		
    </head>
<body>
    <div class="checkboxList">
    	<div class="title">Languages:</div>
    	<div class="row"><input class="checkbox" type="checkbox"/><span class="label">Ruby</span></div>
    	<div class="row"><input type="checkbox"/><span class="label">PHP</span></div>
    	<div class="row"><input type="checkbox"/><span class="label">C#</span></div>
    	<div class="row"><input type="checkbox"/><span class="label">Python</span></div>
    	<div class="row"><input type="checkbox"/><span class="label">JavaScript</span></div>
    </div>
    <p id="message"></p>
</body>
</html>
 

javascript:

 google.load("jquery", "1.3.2");

//run when page is loaded
google.setOnLoadCallback(function() {

    $('.checkboxList .row').css('color','red');
    $('.checkboxList input').attr('checked', true);
    $('.checkboxList input').bind('click', function() {
    	$('#message').html("You clicked on a checkbox.").fadeIn('slow');
    });

});
 

221voto

CMS Points 315406

Aucun fadeIn n'est effectué car l'élément #message est visible, masquez-le, ajoutez le contenu et fondez-le:

 $('#message').hide().html("You clicked on a checkbox.").fadeIn('slow');
 

8voto

XMaster Points 53

après avoir analysé ce problème, que je dois résoudre, ceci est mon code, qui fonctionne pour utiliser fadeout, changer le HTML et fadein

 $("#div_big_picture").fadeOut('slow',function(){
    $(this).html("<img src='" + str_to_load + "' height='800px' />")
}).fadeIn("slow");
 

2voto

beggs Points 3320

Je ne sais pas pourquoi mais j'ai eu du mal à enchaîner ça auparavant. Vous pouvez obtenir l'effet souhaité en utilisant ce code moins élégant:

 google.load("jquery", "1.3.2");

//run when page is loaded
google.setOnLoadCallback(function() {

    $('.checkboxList .row').css('color','red');
    $('.checkboxList input').attr('checked', true);
    $('.checkboxList input').bind('click', function() {
        $('#message').hide(); //just in case
        $('#message').html("You clicked on a checkbox.");
        $('#message').fadeIn('slow');
    });

});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X