2017-03-06 61 views
0

我试图消除另一个后添加一个元素:老div的淡出后追加什么也不做

$("a.III").click(function(e) { 
    var element = '<div class="tagul" data-tagul-src="//cdn.tagul.com/json/6vvgt1xyerus"></div>'; 

    e.preventDefault(); 
    $("div.tagul").fadeOut("slow", function(e) { 
     $("div.tagul").remove(); 
     $("span.content.left").append(element); 
     $("div.tagul").fadeIn("slow"); 
    }) 
}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
<span class="content left" style="float: left;"> 
    <div class="tagul" data-tagul-src="//cdn.tagul.com/json/aup6249sa1ew"></div> 
</span> 
<span class="content" style="float: right"> 

</span> 

什么也没有发生。我假设我在试图追加新元素时做错了什么。

+7

你为什么使用jQuery 1.2.3?这几乎是* 10年过期*。此外,您的片段没有'a.III'元素 –

+0

我正在使用不支持较新版本的动画库。感谢您指出它:) – werck

+0

你应该看看改变这个库。没有什么值得使用过时的软件的惩罚 –

回答

2

您的代码工作正常,问题很可能是您没有任何内容在您要移除/附加的div中,因此您看不到它正在工作。这是你确切的代码,但与在div的内容,所以你可以清楚地看到剧本的工作(带班的III这我假设你忘了你的帖子,包括增加了一个anchor):

$("a.III").click(function(e) { 
 

 
    e.preventDefault(); 
 
    
 
    var element = '<div class="tagul2" data-tagul-src="//cdn.tagul.com/json/6vvgt1xyerus">Tagul 2</div>'; 
 
    
 
    $("div.tagul").fadeOut("slow", function(e) { 
 
    $("div.tagul").remove(); 
 
    $("span.content.left").append(element); 
 
    $("div.tagul2").fadeIn("slow"); 
 
    }); 
 
});
a.III { 
 
    display:block; 
 
    margin-bottom:20px; 
 
} 
 

 
.tagul2 { 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="III">Click me</a> 
 

 
<span class="content left" style="float: left;"> 
 
    <div class="tagul" data-tagul-src="//cdn.tagul.com/json/aup6249sa1ew">Tagul</div> 
 
</span> 
 
<span class="content" style="float: right"> 
 
\t \t \t 
 
</span>

此外,您追加元素的fadeIn()函数实际上不会执行任何操作,因为默认情况下div被设置为显示(基本上,您试图淡入已经可见的元素)。为了让它淡入,你可以改变你正在追加的元素的类,将CSS设置为display:none;,然后该元素在被追加后(我在我的回答中做了这个改变)后会淡入。

+0

你是对的,我得到它的工作,谢谢:) – werck