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。
对于像素精确的元素选择,请参阅我的另一个答案: 在另一个元素下的元素上注册点击