Why doesn't jquery fadeIn() work with .html()?

六眼飞鱼酱① 提交于 2019-11-26 12:05:26

问题


When you click you a checkbox I want the message to fade in slowly.

Why doesn\'t .fadeIn() work in this example?

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\');
    });

});

回答1:


No fadeIn is done because the #message element is visible, hide it, add the content and fade it in:

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



回答2:


after analize this problem, that I have to solve, this is my code, that works to use fadeout, change html and fadein

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



回答3:


No idea why but I've had trouble chaining this before. You can get the effect you want by using this less elegant code:

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

});


来源:https://stackoverflow.com/questions/1490563/why-doesnt-jquery-fadein-work-with-html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!