【发布时间】:2011-02-25 07:19:17
【问题描述】:
我正在 jQuery 上构建一个页面布局配置系统。因此,使用我网站的每个人都可以通过在网页上移动元素来使其个性化。但是,我有一个问题。
我页面上的每个元素都是一个可拖动的 div,如有必要,可以选择从页面中删除。当用户想要删除一个元素时,他点击内部 div 并调用以下函数:
<script language="javascript">
$(function() {
$('.close').click(function(){
$(this).parent().hide();
});
});
</script>
<div class="main"><div class="close"></div></div>
当用户想要在页面上添加一个元素时,他点击链接并调用followinf函数:
function addNewWidget(page_name, size){
var page = $('#'+page_name);
var closeDiv = $(document.createElement("div")).attr("class", "close").html('X');
closeDiv.click(function(){
$(this).parent().hide();
});
var div = $(document.createElement("div"))
div.attr("class", "drag");
div.appendTo(page);
closeDiv.appendTo(div);
div.draggable({
containment: "#page",
scroll: false,
grid: [200, 200]
});
div.css("top:0; left:0");
div.addClass(size);
div.addClass('widget');
}
一切正常,但是当元素被删除时,页面上的其他元素正在向上移动。这是因为代码中的元素定位。代码中的这些div在div之前,被移除了,它们的绝对top被-heghtOfRemovedElement改变了
有什么办法可以防止其他元素上移吗?
【问题讨论】: