使用 jQuery 1.2.x 和 jQuery UI 1.5.x,可以像这样手动触发拖动:
jQuery("#myDiv").mousedown(function(ev) {
target = jQuery(ev.target);
if (target.hasClass("drag-me")) {
target.draggable({
helper: "clone",
start: function()
{
console.log("drag start");
},
stop: function()
{
jQuery(this).draggable("destroy");
}
}).trigger("mousedown.draggable", [ev]);
} });
它适用于以下 HTML:
<div id="myDiv">
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
</div>
这是将拖动应用到其子项动态更改的容器内的元素的一种方便方法。我喜欢称其为“拖动委派”。
然而,随着 jQuery 1.3.x 和 jQuery 1.6+ 的发布,上面的脚本停止工作。使用 jQuery 1.3.2 和 jQuery UI 1.7.1 返回错误“递归过多”。
如何手动触发拖动?有什么建议么?