有谁知道jQuery可排序事件的触发顺序是什么?
我问这个是因为stop
和update
出了问题。 update
事件发生在stop
事件之后,对我来说更有意义,但事实并非如此。
这是记录在任何地方还是有人调查过这个?我无法找到合适的列表,我还不想查看代码。
答案 0 :(得分:5)
事件的顺序是:
创建 - 创建可排序时触发
开始 - 排序开始时触发
激活 - 在拖动开始时为每个连接列表触发
over - 将可排序项目移入可排序列表时触发
排序 - 在排序期间触发
更改 - 在排序期间触发,但仅在DOM位置发生变化时触发
beforeStop - 在排序停止前触发,占位符/帮助
更新 - 停止排序并且DOM位置发生变化时触发
停用 - 在排序停止前触发,传播到所有可能的连接列表
out - 当可排序项目远离可排序列表时触发
停止 - 排序停止后触发
还可能发生其他事件:
接收/删除 - 在列表之间移动项目时触发
不知道为什么在jQueryUI网站上这不清楚。
请注意,根据触发的事件,ui参数不同。值得查看API文档以清楚这是什么并进行调试。
答案 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
然后在beforestop
和stop
:
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
事件之前触发。