我創建了幾個引用元素並將它們附加到DOM的jQuery對象。我希望能夠通過名稱引用它們,以便我不必使用一堆選擇器將事件與它們綁定。這裏是一個簡單化示例代碼的 :通過名稱創建後引用jquery添加元素?
<div class="body>
</div>
$(document).ready(function(){
wrapper = $("<div />")
.addClass("wrapper")
.click(function(e){
if (e.target === this)
$(this).hide();
})
$('.body').wrap(wrapper);
close = $("<button />")
.addClass("close")
.text('CLICK TO CLOSE')
.click(function(e){
///HIDE ".wrapper" FROM HERE
$(wrapper).hide();
///HIDE ".wrapper" FROM HERE
})
.prependTo($('.body'));
})
我希望能夠點擊「關閉」按鈕,隱藏「包裝」。我可以使用來隱藏它,但是會有多個包裝,它只需要針對一個包裝。我可以使用$(this).closest('.wrapper').hide()
,但現在它變得混亂。有沒有辦法從「關閉」中引用「包裝器」變量以避免所有額外的代碼?
什麼是理想的結構? '.wrapper'是最外層的容器嗎?每個'.wrapper'元素都包含它自己的'.body'嗎? '.close'是'.body'的孩子還是兄弟? – showdev
是的dom結構.wrapper是外部然後.body然後在內部是.close(它們是最後的模式,這只是簡單的版本)。在代碼中,而不是在DOM準備中,這是在一個初始化函數中調用的,所以代碼每「模態」調用一次,但我想我是否可以解決它,我可以將它應用於所有。如果你認爲這一切都是必需的,將會更新。 – DasBeasto