2011-08-19 53 views
11

我想写一些前端Javascript测试,可以测试我在我的web应用程序中使用的拖放功能JQuery UI sortable list。不过,我遇到了一个问题,即JQuery UI可排序列表似乎没有响应模拟鼠标事件。Javascript测试模拟拖动JQuery UI排序列表

我尝试了很多技术来测试这个,但最终我发现了JQuery自己的simulation plugin,它似乎提供了我需要的功能。但是,当我运行模拟时,可排序列表不会响应拖动事件,但其他组件(如Draggable)也会做出响应。

这一切都可以非常容易地展示,我把它放在一起simple drag simulation example。在这个例子中,我嵌入了jquery.simulate插件,但修改了拖动函数以减慢它正在触发的事件,以便您可以直观地看到发生了什么。正如你将看到的,模拟插件正在将列表项1正确地移动到项目3和项目4之间,但是当mouseup事件被触发时,项目只会回到原来的位置,而不是重新排序列表。我怀疑JQuery UI库正在寻找另一个事件,但不幸的是我一直无法找到它。

请前往http://jsbin.com/efuyef/7/edit#javascript,live查看可排序列表拖放失败的示例。只需刷新页面即可让仿真再次运行。

有没有人有任何想法,我可以如何正确地模拟可排序列表上的拖动事件?您的帮助将不胜感激。

+1

碰到与jquery.simulate不能拖动排序相同的问题。感谢您提出这个问题。我已经开始怀疑我的理智了...... – kangax

回答

20

经过多次搜索网络,我发现这个问题没有解决方案,所以我走在前面,开发了我自己的解决方案。

检查出我的jQuery插件jquery.simulate.drag-sortable.js

如果你发现任何与此问题,请你写一个测试,以复制的问题,并用叉子叉项目或在Github上提出一个问题Github上库。

+3

哦,你刚刚做了我的一天。我也有可排序和jquery.simulate相同的问题。感谢你! – mynameistechno