我正在使用jQuery UI Sortable行为,并且遇到了一种情况,我需要通过与原始句柄之外的其他元素(当时不可见)的交互来启动可排序的拖动行为。 由于一些帖子中的建议以及jquery.simulate.js(用于运行官方jQUI测试)的建议,我已经成功地设法实现了这一点,并且我可以在几乎所有浏览器中以程序方式启动可排序的拖动过程,除了IE8以下,模拟这样的事件:
item.simulate('mousedown',pos).simulate('mousemove',{ clientX: pos.clientX+1, clientY: pos.clientY});
问题:在IE8(或以下版本)中,在与外部“句柄”交互并模拟mousedown和mousemove事件之后,拖动确实已正确启动,但只要用户确实以任何方式/形状/形式移动他的鼠标,拖动停止或取消,就好像'mouseup'事件已经完成它一样。 我高度认为这是由于旧的fireEvent(IE8-)方法与其他一切使用的dispatchEvent的一些根本区别,但是无法弄清楚如何,或者是否有可能阻止它。
我正在寻找的是可以采取哪些措施来纠正这个问题,或建议为什么会发生这种情况,以及它是否可以采取某种形式的解决方法来防止取消(例如发生的行为)任何其他使用dispatchEvent而不是fireEvent的浏览器。
为您成功(最近的浏览器)或描述的情况失败汇总了一个小例子:demo
TL; DR :已经整理了一个小程序,以程序方式启动jQUI可排序拖动(通过jquery.simulate.js,上面的链接),但它无法在IE8中工作或取消自身 - 。需要一些有关如何克服这一点的指导或建议。检查上面的演示