【发布时间】:2012-12-15 15:56:34
【问题描述】:
我有很多 divs 分布在行和列中(使用 jQuery 生成)。这些divs 中的每一个都是可调整大小的,使用JQuery UI Resizable。为了定义要求,所有divs 必须使用绝对定位。因此,当我重新调整这些 div 的大小时,脚本应该更新其下方所有 div 的 top 属性(位于当前调整大小的 div 之后的同一列和一行)。
这是我现在的代码:
updatePositions: function() {
var update = 0;
$(".element").resizable({
handles: 's',
start: function(event, ui) {
event.stopPropagation();
var el = $(this);
var el_row = parseInt(el.attr("row"));
var el_rel = parseInt(el.attr("rel"));
var el_col = parseInt(el.attr("col"));
update = $(".element").filter(function() {
return(
$(this).attr("row") > el_row &&
$(this).attr("col") == el_col &&
$(this).attr("rel") != el_rel
);
});
},
resize: function(event, ui) {
update.each(function(event){
var top = $(this).position().top + $(this).height() + 20;
$(this).css("top", top )
});
}
})
}
这是一个例子:JSFiddle
如您所见,所有 div 都找到了,我可以更新顶部位置。但由于某种原因,调整大小时变得疯狂!似乎我更新的次数与在每个选定 div 上找到的磁贴一样多。
【问题讨论】:
标签: javascript jquery-ui css-position jquery-resizable