Javascript测试模拟JQuery UI可排序列表的拖动

时间:2011-08-19 01:54:24

标签: unit-testing jquery-ui jquery-ui-sortable

我正在尝试编写一些前端Javascript测试,可以测试我在我的网络应用中使用的JQuery UI sortable list的拖放功能。但是,我遇到了一个问题,即JQuery UI可排序列表似乎没有响应模拟鼠标事件。

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

这可以通过我放在一起的simple drag simulation example很容易地证明。在这个例子中,我嵌入了jquery.simulate插件,但修改了拖动功能以减慢它正在触发的事件,以便您可以直观地看到发生了什么。正如您将看到的,模拟插件正确地将List项目1向下移动到项目3和4之间,但是当触发mouseup事件时,项目只是快速回到它的原始位置而不是重新排序列表。我怀疑JQuery UI库正在寻找另一个事件,但不幸的是我找不到它。

请转到http://jsbin.com/efuyef/7/edit#javascript,live查看可排序列表拖动失败的示例。只需刷新页面即可重新运行模拟。

有没有人知道如何在可排序列表中正确模拟拖动事件?感谢您的帮助。

1 个答案:

答案 0 :(得分:20)

经过大量的网络搜索,我找不到解决这个问题的方法,所以我继续开发自己的解决方案。

查看我的JQuery插件jquery.simulate.drag-sortable.js

的Github存储库

如果您发现此问题,请编写测试以复制问题并分叉项目或在Github中引发问题。