Jquery ui,手动调用start drag

在Jquery UI中,我可以通过调用将元素配置为可拖动

$("#drag").draggable(); 

但有没有办法从另一个function手动启动和停止拖动function? 即

 someOtherFunction = function() { $("#drag").startdrag(); } yetAnotherFunction = function() { $("#drag").stopdrag(); } 

上面的答案似乎过于复杂。

 $('.nonDraggableObjectWhichTriggersDrag').mousedown(function(e) { $('.draggableObject').trigger(e); }); 

通过查看鼠标事件的脚本启动拖动开始。 鼠标向下,然后鼠标移动。 如果你可以通过Javascript模拟那些鼠标移动(我不知道在哪里,如何,或者甚至可能),那么它应该触发拖动的开始。

注意:刚发现YUI有一种模拟鼠标移动和鼠标点击的方法。 查看http://developer.yahoo.com/yui/yuitest/#useractions

要停止拖动,你只需要在拖动回调中返回false,如下所示:

 $("#unlock-handle").draggable({axis:'x', containment:'parent', drag:onDrag}); ... var onDrag = function(e) { if ($(this).position().left > 200) return false; }; 

希望能帮助到你 :-)

我没有找到一种手动触发拖动的方法,但我找到了类似情况的解决方法。

我有这种情况有两个重叠的图像(见下图),两者都是部分透明的。 在draggable的开始(事件)中,我想检查它是否达到透明像素。 如果是这样的话,我会在它下面查看另一个元素,看看是否有一个元素被击中。 如果是的话,我想开始拖延。

在此处输入图像描述

解? 我在mousemove上重新排序图像,然后为最顶层的图像触发draggable。

对于像素精确的元素选择,请参阅我的另一个答案: 在另一个元素下的元素上注册点击