2012-10-04 80 views
0

我想淡出div元素,改变它里面的文本,并在褪色回来......jQuery的淡入淡出和

我的代码是在这里 -

<script> 
     $(document).ready(function(){ 
      $("#l2").click(function(event){ 
       event.preventDefault(); 
       $("#1").fadeOut(); 
       $("#1").replaceWith('Testing'); 
       $("#1").fadeIn(); 
      }); 
     }); 
    </script> 

l2被点击,它将fadeOut div id 1替换并淡入......但它失败了。ANY谢谢!

+0

数字ID不建议... – henryaaron

+2

的'div' ID必须启动用字母 – Darcy

+0

什么是'测试'?你想要取代什么? –

回答

3

你想用.text之前没有看到它或.html而不是.replaceWith - 这是为了使用DOM元素。此外,.text.html不适用于队列,因此您无法链接它们。你必须使用的回调:

$("#1").fadeOut(function() { 
    $(this).text('Testing').fadeIn(); 
}); 
+0

感谢这工作! – Matt

0

只需使用淡出回调。这里是一个快速小提琴http://jsfiddle.net/M5PnY/2/单击文本

编辑------

改变与HTML()代替,

$(document).ready(function(){ 
    $("#1").click(function(event){ 
     event.preventDefault(); 
     $("#1").fadeOut(function(event){ 
      $("#1").html('Testing').fadeIn(); 
     }); 
    }); 
});​ 
+0

因为'.replaceWith'删除了ID,所以不起作用。请注意,它不会褪色。 –

+0

你是对的没有看到,用html()代替 – user1289347

1

您需要使用回调来实现自己的目标:

$("#1").fadeOut(500, function(){ 
    $("#1").html('Testing'); 
    $("#1").fadeIn(); 
}); 

的淡出完成时作为参数传递的功能将被执行。

0

在第二行中,您将元素#1替换为新的元素,然后您不能再次将其淡入。

$("#1").replaceWith('Testing'); 

导致DIV#1由文本测试替代

,所以你应该使用:

$("#1").html('Testing');