2016-01-08 92 views
1

我想在打開一個模式窗口後刪除一個單獨的div,此刻我卡住了,因爲我無法刪除它。刪除與模式最接近的div

的HTML是:

<h1>Delete individual image divs</h1> 
<div class="image"><a href="#text">open delete modal</a> 
</div> 
<div class="image"><a href="#text">open delete modal</a> 
</div> 
<div class="image"><a href="#text">open delete modal</a> 
</div> 

<!-- lightbox container hidden with CSS --> 
<div class="lightbox" id="text"> 
<div class="box"> 
<a class="close" href="#">X</a> 
<p class="title">Modal Window with Text</p> 
<div class="content"> 
    <a class="delete" href="#delete">Delete</a> 
</div> 
</div> 
</div> 

jQuery的是:

$(document).on('click', '.delete', function(e) { 
e.preventDefault(); 
$(this).closest('.image').remove(); 
return false; 
}); 

任何幫助將非常歡迎。我即將從這一個得到一個禿斑。

它的一個版本可以在這裏找到:

https://jsfiddle.net/damianbuttle/hod6sk3r/1/

+0

也許你提供了一箇舊琴。我看不到JS代碼。 – mat3e

+0

我剛更新了它,請重試。 –

+1

'$(this)'指被點擊的'.delete'元素。沒有'.image'是這個元素的祖先。 – showdev

回答

0

由於@showdev在他的評論中指出,$(本)具有與已被刪除的元素沒有任何聯繫。您可以爲點擊的div添加另一個處理程序:

var currentImage = null; 
$('.image').click(function() { 
    currentImage = $(this); 
}); 

然後,您的移除應該看起來像像這樣:

$('.delete').click(function() { 
    currentImage.remove(); 
}); 

檢查了這一點:https://jsfiddle.net/hod6sk3r/7/

+0

非常感謝,這讓我瘋狂。 –

+0

如果有幫助,你可以接受我的答案:) – mat3e

+0

你會不會知道如何在成功後自動關閉模態窗口? –