相关疑难解决方法(0)

如何以编程方式调用jQuery UI Draggable拖动启动?

我在鼠标处于向下位置之前和释放之前创建一个新的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,而是生成最大调用堆栈超出错误.

jquery jquery-ui jquery-ui-draggable

24
推荐指数
2
解决办法
2万
查看次数

Javascript测试模拟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查看可排序列表拖动失败的示例.只需刷新页面即可再次运行模拟.

有没有人有任何想法如何我可以正确模拟可排序列表上的拖动事件?非常感谢您的帮助.

unit-testing jquery-ui jquery-ui-sortable

12
推荐指数
1
解决办法
4118
查看次数

Jquery ui,手动调用start drag

在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 user-interface drag

11
推荐指数
1
解决办法
9943
查看次数

以编程方式将元素拖放到另一个元素上

使用jQuery UI,是否可以使用javascript执行拖放操作?

例子.单击链接后,将其#pony拖放到#box.我试过触发拖动事件,但这似乎不起作用:)

$('#pony').trigger('drag', [$('#box')]);
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui droppable draggable

6
推荐指数
1
解决办法
8733
查看次数