📅  最后修改于: 2023-12-03 15:02:22.139000             🧑  作者: Mango
itemMoved
事件是基于JQWidgets jqx看板插件的一项功能,它会在看板的一个任务卡片被移动至另一个列表时被触发。
在使用itemMoved
事件之前,需要先实例化JQWidgets jqx看板插件,并设置相应的配置项,如下所示:
$("#kanban").jqxKanban({
headerHeight: 40,
columns: [
{ text: "列 1", dataField: "new", maxItems: 5 },
{ text: "列 2", dataField: "work", maxItems: 5 },
{ text: "列 3", dataField: "test", maxItems: 5 },
{ text: "列 4", dataField: "done", maxItems: 5 }
],
source: new $.jqx.dataAdapter({
datatype: "json",
datafields: [
{ name: "id", type: "string" },
{ name: "text", type: "string" },
{ name: "status", type: "string" }
],
id: "id",
localdata: [
{ id: "1", text: "任务 1", status: "new" },
{ id: "2", text: "任务 2", status: "new" },
{ id: "3", text: "任务 3", status: "work" },
{ id: "4", text: "任务 4", status: "work" },
{ id: "5", text: "任务 5", status: "test" },
{ id: "6", text: "任务 6", status: "test" },
{ id: "7", text: "任务 7", status: "done" },
{ id: "8", text: "任务 8", status: "done" }
]
})
});
一旦实例化完成,并且进行了一些初始化设置后,就可以使用itemMoved
事件作为回调函数进行绑定,如下所示:
$("#kanban").on("itemMoved", function (event) {
var args = event.args;
var item = args.itemData;
var oldColumn = args.oldColumn;
var newColumn = args.newColumn;
console.log("任务 #" + item.id + " 从 " + oldColumn + " 移动到 " + newColumn);
});
在这个例子中,itemMoved
事件被绑定到了一个<div>
元素上,每当它的子元素(也就是一个任务卡片)被移动时,回调函数就会被触发。
在回调函数中,可以使用event.args
对象获取一些有用的信息,比如被移动的任务卡片(itemData
)、它原本所在的列(oldColumn
)和它移动到的新列(newColumn
)。
除了itemMoved
事件,JQWidgets jqx看板插件还提供了其他一些事件,它们分别是itemAttrClicked
、itemDragging
、itemDrop
和itemClick
。
itemAttrClicked
事件会在一个任务卡片被点击时触发,主要用来处理对任务卡片的编辑或删除操作。
itemDragging
事件会在一个任务卡片被拖动时触发,可以用来实现一些自定义的拖拽效果或规则。
itemDrop
事件会在一个任务卡片被拖放到另一个列时触发,它是itemMoved
事件的前置事件,可以在它触发时进行一些准备工作。
itemClick
事件会在一个任务卡片被单击时触发,可以用来实现一些自定义的交互效果。
使用JQWidgets jqx看板插件非常容易实现一个简单的任务管理系统,而其中的itemMoved
事件可以帮助我们了解每个任务卡片的动态,并进行进一步的处理或统计。同时,还有其他一些相关事件可以帮助我们实现更加丰富的功能。