延迟后如何更改文本 - jQuery.

How to change text after delay - jQuery

本文关键字:jQuery 文本 何更改 延迟      更新时间:2023-09-26

我有两个带有个人 id 的div 和一个样式相同的类。

foo_1有一个 z 指数,因此它高于 foo_2。

<div id="foo_1" class="foo"><p>I'm awesome.</p></div>
<div id="foo_2" class="foo"><p>No, I am.</p></div>

我想做的是让foo_1淡出,背后有foo_2。

我确实试过这个;

.HTML

<div id="foo_1" class="foo"><p>I'm awesome</p></div>
<div id="foo_2" class="foo" style="display: none;"><p>No, I am.</p></div>

jQuery

$(document).ready(function()
{
    setTimeout(function()
    {
        $("#foo_1").fadeOut("slow", function ()
        {
            $("#foo_1").remove();                
            $("#foo_1").html($("#foo_2").text());
            $("#foo_1").show();
        });
     }, 5000);
 });

谢谢!

setTimeout(function()
    {
        $("#foo_1").fadeOut("slow", function ()
        {
            // remove $("#foo_1").remove(); 
            // line from code, 
            // because, its removing #foo_1 from dom, 
            // so in next strp you can't catch it
            // $("#foo_1").remove();           
            $("#foo_1").html($("#foo_2").text());
            $("#foo_1").show();
        });
     }, 5000);

在我看来,你正在做的事情有点矫枉过正。

让我总结一下:您有两个div,它们位于同一位置,但只有 #foo_1 可见,因为它位于顶部。您现在想要隐藏 #foo_1 以显示 #foo_2。

因此,在淡出 #foo_1 的同时使 #foo_2 可见就足够了:

setTimeout(function() {
    // Make #foo_2 visible
    $('#foo_2').show();
    // Fade out #foo_1
    $('#foo_1').fadeOut('slow');
}, 5000);

只需使用标准 jQuery 函数和 ms FadeOut(500) 中的参数,FadeIn(500)

$(document).ready( function ()
{
  $('#foo_1').fadeOut(1500);
  $('#foo_2').text('No, I am!').fadeIn(1000);
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='foo_1' style='display:block;'> I'm awesome </div>
<div id ='foo_2' style='display:none;'></div>