events - Kendo multiselect,当一个项目被移除时触发一个事件

我使用 Kendo UI 中的多选。 我想知道当用户从多选中删除项目时是否有任何方法可以触发功能。 到目前为止,我知道触发了“更改”事件,但它太笼统了,我找不到有关用户删除内容的任何信息。或者有吗?

最佳答案

如何定义 change 为:

change    : function (e) {
    var previous = this._savedOld;
    var current = this.value();
    var diff = [];
    if (previous) {
        diff = $(previous).not(current).get();
    }
    this._savedOld = current.slice(0);
    // diff has the elements removed do whatever you want...
}

我所做的是将以前的值保存在 _savedOld 上,然后使用 jQuery.not 计算与当前值的差异.重要的是要注意使用 slice 来克隆以前的值列表,如果我们保存 current 那么我们实际上是在保存对当前列表的引用,因为它是下一个引用我们尝试使用的时间再次获得当前值。

编辑:为了保存初始化期间设置的值,您可以:

dataBound : function (e) {
    saveCurrent(this);
},
change    : function (e) {
    var previous = this._savedOld;
    var current = this.value();
    var diff = $(previous).not(current).get();
    saveCurrent(this);
    // diff has the elements removed do whatever you want...
}

其中 saveCurrent 是定义为的函数:

function saveCurrent(multi) {
    multi._savedOld = multi.value().slice(0);
}

https://stackoverflow.com/questions/16608565/

相关文章:

xcode - 如何在 Xcode 和其他文件中同时复制 .h 和 .m 文件?

.net - 可区分联合中的函数约束泛型参数的类型

autoconf - Automake 要求 "Autoconf 2.65 or better"但我

amazon-web-services - 带有亚马逊网络服务的 UDP 服务

r - 有不同格式的 knitr 输出图

python - recarray 中的 numpy datetime64

scala - 没有用于 future 的守护线程的执行上下文

crystal-reports - 具有内置最终用户报告设计器的报告系统

r - 如何将列表的每个元素作为未命名参数传递给函数?

.net - 无法在 PowerShell 中创建 .Net 对象