📅  最后修改于: 2023-12-03 15:32:19.787000             🧑  作者: Mango
jqxSortable是jQWidgets中的一个插件,用于实现可排序的列表。beforeStop事件是该插件中的一个事件,触发时会在正在拖动的item放置前被触发,允许开发人员通过返回值控制item是否能够被放置,以及放置的位置。
在初始化jQWidgets jqxSortable时,可以传入beforeStop事件的回调函数,例如:
$('#sortable').jqxSortable({
beforeStop: function (event) {
// ...
}
});
在回调函数中可以使用event参数来获取当前拖动的item以及目标位置等信息,例如:
beforeStop: function (event) {
var item = $(event.args.item);
var target = $(event.args.target);
var position = event.args.position;
var sibling = $(event.args.sibling);
// ...
}
在回调函数中,可以根据需要返回一个boolean值告诉插件是否允许item被放置。如果返回false,则item将不会被放置;如果返回true,则可以根据其他逻辑判断放置的位置。
beforeStop: function (event) {
var item = $(event.args.item);
var target = $(event.args.target);
if (target.hasClass('no-drop')) {
return false;
}
else {
return true;
}
}
event: 事件对象,包含以下属性:
$('#sortable').jqxSortable({
placeHolderTemplate: $('<div class="jqx-sortable-placeholder"></div>'),
beforeStop: function (event) {
var item = $(event.args.item);
var target = $(event.args.target);
if (target.hasClass('no-drop')) {
return false;
}
else {
if (event.args.position === "before") {
item.insertBefore(target);
}
else {
item.insertAfter(target);
}
return true;
}
}
});
beforeStop事件的回调函数需要返回一个boolean值,表示是否允许item被放置。如果返回false,则item将不会被放置;如果返回true,则可以根据其他逻辑判断放置的位置。