我有这个问题,每次点击一个链接时我都会生成一个窗口(带有'window'类的div),这是代码:
$(".getWindow").live('click',function(){
$('#desktop').append('<div class="window"><span class=\"close\">x</span>Well '+$(this).attr('well')+'<div id="screen"><img src="assembled_colors.jpeg" class="drag-image" id="draggable"/></div></div>');
$('.drag-image').draggable();
$('.window').draggable();
});
然后,每次按下代码第二行的'x'时,我都会尝试关闭窗口:
$('.close').live('click', function(){
$(this).parent().empty();
});
这只会关闭窗口内部,而不是窗口本身,我的下一个方法就是这样做:
$('.close').live('click', function(){
$(this).parent().parent().empty();
});
关闭所有打开的窗口。你能帮我解决一下如何只关闭包含按下的x按钮的窗口吗?
提前致谢!
答案 0 :(得分:2)
尝试:
$('.close').live('click', function(){
$(this).parent().remove();
});
使用remove()而不是empty()的原因是empty()将影响父元素中包含的内容,而remove()将从DOM中删除父元素。这就是为什么你只删除窗口内的内容而不是实际的窗口本身。
答案 1 :(得分:1)
.empty()只是清除所选元素的内容 .remove()从DOM中删除元素。
我还建议使用closest,因此如果稍后引入一些其他元素来包装关闭按钮,它仍然可以使用
$('.close').live('click', function(){
$(this).closest('.window').remove();
});
答案 2 :(得分:0)
您应该将 .empty()
更改为 .remove()
$('.close').live('click', function(){
$(this).parent().remove();
});