2011-10-11 57 views
2

我有這個問題,我生成一個窗口(與'窗口'類的div)每次鏈接被點擊,這是代碼爲:空的特定格與幾個其他同一類的JQuery

$(".getWindow").live('click',function(){ 
    $('#desktop').append('<div class="window"><span class=\"close\">x</span>Well '+$(this).attr('well')+'<div id="screen"><img src="assembled_colors.jpeg" class="drag-image" id="draggable"/></div></div>'); 
    $('.drag-image').draggable(); 
    $('.window').draggable(); 
}); 

然後,每一次的「X」在我的代碼的第二行被按下時,我試圖關閉窗口,這樣做:

$('.close').live('click', function(){ 
    $(this).parent().empty(); 
}); 

這僅關閉什麼是窗口內,但不是窗戶本身,我的下一個方法是做到這一點:

$('.close').live('click', function(){ 
    $(this).parent().parent().empty(); 
}); 

它關閉所有打開的窗口。你能幫我關於如何只關閉包含按下的x按鈕的窗口嗎?

在此先感謝!

回答

2

嘗試:

$('.close').live('click', function(){ 
    $(this).parent().remove(); 
}); 

之所以使用remove()代替empty()是空的()會影響什麼是包含您的父元素中,而刪除()會從DOM中刪除的父元素。這就是爲什麼你只是刪除窗口內的內容,而不是實際的窗口本身。

+0

感謝,這項工作就像一個魅力它仍然可以工作。 – Multitut

0

你應該改變.empty().remove()

$('.close').live('click', function(){ 
    $(this).parent().remove(); 
}); 
1

.empty()只是清除所選元素的內容。
.remove()從DOM中刪除元素。

我也建議使用closest,所以如果你引入一些額外的元素晚些時候包裹關閉按鈕

$('.close').live('click', function(){ 
    $(this).closest('.window').remove(); 
}); 
+0

謝謝,這項工作就像一個魅力。 – Multitut

相關問題