使用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返回错误“太多的递归”.
如何手动触发拖动?有什么建议?
解决方法
上面的答案似乎过于复杂.
$('.nonDraggableObjectWhichTriggersDrag').mousedown(function(e) { $('.draggableObject').trigger(e); });