我在鼠标处于向下位置之前和释放之前创建一个新的jQuery元素.(在mousedown之后).
我想dragging使用jQuery UI 以编程方式触发新元素,以便它会自动开始拖动我的鼠标移动.我不想释放然后再次单击鼠标.
我试过以下......
var element = $("<div />");
element.appendTo("body").draggable().trigger("mousedown");
Run Code Online (Sandbox Code Playgroud)
......但这不起作用.
有没有人对如何做到这一点有任何建议?
更新: 经过一番搜索,这个问题的海报有同样的问题.然而,建议的解决方案,归结为......
$("body").on("mousedown", function(e) {
$("<div />").draggable().appendTo("body").trigger(e);
});
Run Code Online (Sandbox Code Playgroud)
...不再适用于最新版本的jQuery和jQuery-UI,而是生成最大调用堆栈超出错误.
我正在尝试编写一些前端Javascript测试,可以测试我在我的Web应用程序中使用的JQuery UI可排序列表的拖放功能.但是,我遇到了一个问题,即JQuery UI可排序列表似乎没有响应模拟鼠标事件.
我尝试了很多技术来测试它,但最后我找到了JQuery自己的模拟插件,似乎提供了我需要的功能.但是,当我运行模拟时,可排序列表不响应拖动事件,但其他组件(如Draggable)会响应.
通过我放在一起的简单拖曳模拟示例,可以很容易地证明这一点.在这个例子中,我嵌入了jquery.simulate插件,但修改了拖动功能以减慢它正在触发的事件,以便您可以直观地看到发生了什么.正如您将看到的,模拟插件正确地将List项目1向下移动到项目3和4之间,但是当触发mouseup事件时,项目只是快速回到它的原始位置而不是重新排序列表.我怀疑JQuery UI库正在寻找另一个事件,但不幸的是我无法找到它.
请访问http://jsbin.com/efuyef/7/edit#javascript,live查看可排序列表拖动失败的示例.只需刷新页面即可再次运行模拟.
有没有人有任何想法如何我可以正确模拟可排序列表上的拖动事件?非常感谢您的帮助.
在Jquery UI中,我可以通过调用将元素配置为可拖动
$("#drag").draggable();
Run Code Online (Sandbox Code Playgroud)
但有没有办法从另一个函数手动启动和停止拖动功能?即
someOtherFunction = function() {
$("#drag").startdrag();
}
yetAnotherFunction = function() {
$("#drag").stopdrag();
}
Run Code Online (Sandbox Code Playgroud) 使用jQuery UI,是否可以使用javascript执行拖放操作?
例子.单击链接后,将其#pony拖放到#box.我试过触发拖动事件,但这似乎不起作用:)
$('#pony').trigger('drag', [$('#box')]);
Run Code Online (Sandbox Code Playgroud)