2013-08-20 57 views
0

我有一些jQuery「彈出窗口」,我知道,你可以在運行時應用onClick事件的對象,像這樣:點擊時從DOM中移除元素的可移植函數?

$('.popup').on('click', 'img.close', function() { 
    // Remove the popup 
}); 

不過,我不確定如何區分哪些是彈出基於點擊關閉而不是全部關閉。我需要通過this關鍵字作爲參數嗎?

基本上被添加到文檔中的所有彈出窗口包括這個樣板代碼:

<div class="popup"> 
    <div class="toolbar"> 
     Popup Title Here 
     <img src="close.png" class="close"></div> 
    </div> 
    <p class="text">Popup content/data here<p> 
</div> 

我想離開的標記,因爲這和控制onClick事件和彈出窗口關閉功能內部的負載在運行時。這可能嗎?

當前我正在爲每個彈出框分配一個ID,並根據彈出框的ID刪除它們,但此方法似乎是多餘的,我希望有一個更清晰的方法來處理這個問題。

回答

4

您可以使用.closest()找出點擊close元素

$('.popup').on('click', 'img.close', function() { 
    $(this).closest('.popup').remove(); //or .hide() if you just want to hide the popup 
}); 
+0

就像一個魅力的父元素.popup!謝謝,我不知道.closest()函數。 – SISYN