我使用 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/