【发布时间】:2011-10-30 06:39:28
【问题描述】:
我正在尝试编写一些前端 Javascript 测试来测试我在我的网络应用程序中使用的JQuery UI sortable list 的拖放功能。但是,我遇到了一个问题,即 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查看可排序列表拖拽失败的例子。只需刷新页面即可再次运行模拟。
有没有人知道如何正确模拟可排序列表上的拖动事件?我们将不胜感激。
【问题讨论】:
-
遇到了同样的问题,jquery.simulate 无法拖动 sortables。感谢您提出这个问题。我已经开始怀疑自己的理智了……
标签: unit-testing jquery-ui jquery-ui-sortable