📜  jQWidgets jqx看板 itemMoved 事件(1)

📅  最后修改于: 2023-12-03 15:02:22.139000             🧑  作者: Mango

jQWidgets jqx看板 itemMoved 事件

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看板插件还提供了其他一些事件,它们分别是itemAttrClickeditemDraggingitemDropitemClick

itemAttrClicked事件会在一个任务卡片被点击时触发,主要用来处理对任务卡片的编辑或删除操作。

itemDragging事件会在一个任务卡片被拖动时触发,可以用来实现一些自定义的拖拽效果或规则。

itemDrop事件会在一个任务卡片被拖放到另一个列时触发,它是itemMoved事件的前置事件,可以在它触发时进行一些准备工作。

itemClick事件会在一个任务卡片被单击时触发,可以用来实现一些自定义的交互效果。

总结

使用JQWidgets jqx看板插件非常容易实现一个简单的任务管理系统,而其中的itemMoved事件可以帮助我们了解每个任务卡片的动态,并进行进一步的处理或统计。同时,还有其他一些相关事件可以帮助我们实现更加丰富的功能。