为什么jquery fadeIn()无法与.html()一起使用?


77

当您单击复选框时,我希望消息逐渐消失。

为什么在此示例中.fadeIn()不起作用?

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

});

Answers:


223

因为#message元素可见,隐藏它,添加内容并使其淡入,所以不进行fadeIn:

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

太棒了 你是今天的英雄。
James P.

6
以人为形式的内容管理系统-太棒了!
JoseBazBaz

如果我li在1秒后一个接一个地添加几个元素并希望与您的解决方案一起显示怎么办?如何淡入我添加的不是全部李的李?像$("#oFnav").append("<li class='hideOFl'>Business Process Study</li>").hide().fadeIn(fadeIndur);。它隐藏并淡入所有lis,而不仅仅是addeed。
RN库什瓦哈2014年

修改:$('#message').fadeOut('slow').html("You clicked on a checkbox.").fadeIn('slow');将让淡入淡出的html闪烁2次...有趣的错误:P
Kerim Yagmurcu

9

对这个问题进行分析之后,我必须解决,这是我的代码,可以使用渐变,更改html和fadein

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

2

不知道为什么,但是我以前在链接此链接时遇到了麻烦。您可以使用以下不太雅致的代码来获得所需的效果:

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

});

2
感觉就像是伏都教密码,你知道吗?就像链条一样,但是尝试时可能会遗漏一些东西,因此您已经恢复到dodgier方法,因为它可以工作。进入这是一个危险的习惯……
nickf

同意...从来没有花时间弄清楚为什么它不起作用...但是我看到CMS的答案对此做了解释。很高兴知道。
2009年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.