2013-04-09 50 views
2

我有一個非常簡單的模式窗口追加身體 - 單擊關閉按鈕應該刪除它我認爲這會做到這一點,但沒有。我試過$(this).remove();它拿出了按鈕,但沒有附加的文本 - 我哪裏出錯了?追加到身體然後刪除 - 無法讓它刪除

$(function(){ 
var qrCodeDiv='<div id="qrBlock"><a href="#" class="closeQR">X</a></div>' 

$(".add").click(function(){ 
$('body').append(qrCodeDiv); 
}); 

$('a.closeQR').live("click", function() { 
$('body').remove(qrCodeDiv); 
}); 
}); 

回答

13

.remove() does not accept an arbitrary HTML string。這種語法對創建元素特別有用,但這不是.remove()所做的。

將其更改爲$('body').remove('#qrBlock')或簡單地$('#qrBlock').remove()


注意,當click回調運行不止一次在你的問題的代碼將插入具有相同ID的多個元素,which is a big no-no and will lead to undefined behavior.

+0

不知怎的,我從來沒有注意到'卸下襬臂(選擇)'語法整潔。 – jmar777 2013-04-09 00:35:23

+0

很感謝 - 第二個人做了這個訣竅。我還在fadeOut轉換中添加了 $(「#qrBlock」)。fadeOut(800,function(){$(「#qrBlock」)。remove();}); – Tomate 2013-04-09 00:41:23

+0

哦,是的,我知道多個插入,但當鏈接被點擊時,div覆蓋它,所以它不能再次點擊 - 這就是爲什麼我非常熱衷於從代碼頁中刪除代碼,而不是隻是淡化它。 – Tomate 2013-04-09 15:17:36