2017-03-06 113 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