我有以下问题,我有一个大树,它有可以按需折叠和展开的子节点(节点内的数据通过 AJAX 获取)。但是,我使用 jquery.event.drop/drag 来创建我的拖放目标。
但是,当我折叠/展开放置目标更改位置时,我需要重新计算。这就是我想要这样做的方式:
function create_drop_targets() {
$('li a')
.bind('dropstart', function(event) {
})
.bind('drop', function(event) {
})
.bind('dropend', function(event) {
});
}
create_drop_targets() 在折叠/展开时被调用。
但是,这不起作用。我在 jquery.event.drop 中找到了以下内容:
var drop = $.event.special.drop = {
setup: function(){
drop.$elements = drop.$elements.add( this );
drop.data[ drop.data.length ] = drop.locate( this );
},
locate: function( elem ){ // return { L:left, R:right, T:top, B:bottom, H:height, W:width }
var $el = $(elem), pos = $el.offset(), h = $el.outerHeight(), w = $el.outerWidth();
return { elem: elem, L: pos.left, R: pos.left+w, T: pos.top, B: pos.top+h, W: w, H: h };
}
现在我需要知道如何再次调用 setup() 方法,以便它使用 droppables 的新位置重新填充 $elements。