jQuery UI Sortable:事件顺序

时间:2013-11-29 08:51:45

标签: javascript jquery jquery-ui

有谁知道jQuery可排序事件的触发顺序是什么? 我问这个是因为stopupdate出了问题。 update事件发生在stop事件之后,对我来说更有意义,但事实并非如此。

这是记录在任何地方还是有人调查过这个?我无法找到合适的列表,我还不想查看代码。

3 个答案:

答案 0 :(得分:5)

事件的顺序是:

创建 - 创建可排序时触发

开始 - 排序开始时触发

激活 - 在拖动开始时为每个连接列表触发

over - 将可排序项目移入可排序列表时触发

排序 - 在排序期间触发

更改 - 在排序期间触发,但仅在DOM位置发生变化时触发

beforeStop - 在排序停止前触发,占位符/帮助

更新 - 停止排序并且DOM位置发生变化时触发

停用 - 在排序停止前触发,传播到所有可能的连接列表

out - 当可排序项目远离可排序列表时触发

停止 - 排序停止后触发

还可能发生其他事件:

接收/删除 - 在列表之间移动项目时触发

不知道为什么在jQueryUI网站上这不清楚。

请注意,根据触发的事件,ui参数不同。值得查看API文档以清楚这是什么并进行调试。

http://api.jqueryui.com/sortable/

答案 1 :(得分:1)

停止事件是最后被触发的事件。检查here以查看Jquery可排序元素的所有事件。

答案 2 :(得分:0)

从当前源代码中,update个事件被放入队列中:

delayedTriggers.push(function(event) {
    this._trigger("update", event, this._uiHash());
}); //Trigger update callback if the DOM position has changed

然后在beforestopstop

之间触发排队的事件
this._trigger("beforeStop", event, this._uiHash());
for (i=0; i < delayedTriggers.length; i++) {
        delayedTriggers[i].call(this, event);
} //Trigger all delayed events
this._trigger("stop", event, this._uiHash());

因此,在当前实施中,update事件将始终在stop事件之前触发。