我有以下HTML:
<div class="windowtemplate movingwindow" style="display: block;">
<div class="top">Attenzione <a href="#" onclick="closedialog();"><span class="closebutton"></span></a></div>
<div class="body">
<p>texthere</p>
<a href="#" onclick="closedialog();"><span class="genericbutton">Close</span></a>
</div>
<div class="bottom"></div>
</div>
我正在尝试使用此代码隐藏此框(从div class =“windowtemplate movingwindow”开始):
function closedialog() {
$(this).parent("windowtemplate").hide();
};
但这并没有排除任何影响,我错了? (我是jQuery的新手,所以,对不起,如果这是一个非常简单的问题,但我找不到任何解决方案!)
答案 0 :(得分:1)
首先,你错过了表示一个类的点和第二个父()选择器只搜索树中的等级,你需要parents()。 使用此代码 -
$('.genericbutton').on('click', function() {
$(this).parents(".windowtemplate").hide();
}
答案 1 :(得分:1)
this
这里没有引用点击的元素。.
。.parent()
未选择祖父母元素,您应使用.closest()
代替。您应该避免使用属性事件处理程序。
$('.genericbutton').on('click', function() {
$(this).closest('.windowtemplate').hide();
});
如果动态生成.windowtemplate
,您应该委派该事件,如果您使用的是jQuery 1.7+,则可以使用.on()
方法:
$(document).on('click', '.genericbutton', function() {
$(this).closest('.windowtemplate').hide();
});
答案 2 :(得分:1)
试试这个
<a href="#" onclick="closedialog(this);"><span class="genericbutton">Close</span></a>
这是你的js
function closedialog(element) {
$(element).closest(".windowtemplate").hide();
};