我创建了几个引用元素并将它们附加到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