我的网页实现有问题JQuery。我知道很难理解我想要做什么,但我会尽量让它最清楚(尽管我的英语不是很好)。
我有一个网页,其中有一个可以在“包含包装器”中拖动的 div,并且我已经实现了,当你拖动它时,你会得到该主div 的克隆(副本),然后你可以拖动这个克隆的 div在屏幕周围(在“containment-wrapper”内)。每次拖动主div 时,都会创建另一个克隆的 div。它完美地工作。
编码:
$(".tool").draggable({
containment: "#containment-wrapper",
helper: 'clone',
stop: function(event, ui) {
if($num==null) $num=0; //treat a number for the id of the next cloned div
else $num++;
$(ui.helper).clone(true).attr("id",$(this).attr("id")+$num).removeClass('tool ui-draggable ui-draggable-dragging ui-widget-content').addClass('element ui-widget-content').appendTo('#containment-wrapper');
}
});
问题是我必须实现,当您加载该网页时,用户已经在服务器中保存了他的前 div 的情况:所有克隆 div 的位置(我保存了主div 的 id 和位置 - 顶部走了)。
因此,我正在尝试实现一个代码,该代码仅在页面加载时执行,该代码创建并将用户保存的克隆 div放置到屏幕上(在“containment-wrapper”内)。
我用这段代码得到了它(我有以下值:$id -主div 的 id,$left和$top - 我必须创建的 div 的位置):
var $obj = $("#"+$id); //get the main div
if($num==null) $num=0; //treat a number for the id of the next cloned div
else $num++;
$obj.clone(true).attr("id",$id+"_"+$num).removeClass('ui-draggable ui-draggable-dragging ui-widget-content').addClass('ui-widget-content').appendTo('#containment-wrapper').css( { "position": "absolute", "left":$left + "px", "top":$top + "px" } );
它在我想要的地方创建了克隆的 div,但我的大问题是,当我尝试用鼠标拖动克隆的 div 时,在被拖动的 div 内部,它开始被拖动主div(我从中创建克隆的 div) 并创建另一个克隆的 div。因此,无法拖动我的代码创建的克隆 div。
我希望有可能了解我的所有情况和问题......知道如何解决它吗?
我也尝试做这样的事情(我想用它来处理可拖动事件函数中的位置):
var $obj = $("#"+$id);
$obj.trigger("mousedown.draggable", [ev]);
ev.stopPropagation();
但是当我用firebug(firefox插件)调试它时,我看到事件draggable永远不会执行。
非常感谢您的宝贵时间,
阿莱克斯