jQuery UI 可排序:事件的顺序

jQuery UI Sortable: order of events

本文关键字:事件 顺序 排序 UI jQuery      更新时间:2023-12-17

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

这是否记录在任何地方或有人对此进行调查?我无法找到合适的列表,而且我还不想浏览代码。

事件的顺序为:

create - 创建可排序对象时触发

start - 排序开始时触发

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

over - 在将可排序项移动到可排序列表时触发

排序 - 在排序期间触发

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

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

update - 停止排序且 DOM 位置更改时触发

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

out - 当可排序项从可排序列表中移出时触发

stop - 在排序停止时触发

还有其他可能发生的事件:

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

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

请注意,根据触发的事件,ui 参数会有所不同。值得查看 API 文档以明确这是什么并对其进行调试。

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

停止事件是最后一个触发的事件。查看此处以查看 Jquery 可排序元素的所有事件。

从当前的源代码中,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事件之前触发。