标题说明了一切……
当我知道用户已完成调整大小时,我需要执行自定义操作,但是从我在 Kendo UI 文档中可以找到的内容来看,除了我无法按原样使用的“调整大小”之外,我没有其他可访问的事件。
也许我只是错过了这个活动?
如果不:
有没有办法使用“调整大小”事件来确定用户已停止调整大小?
标题说明了一切……
当我知道用户已完成调整大小时,我需要执行自定义操作,但是从我在 Kendo UI 文档中可以找到的内容来看,除了我无法按原样使用的“调整大小”之外,我没有其他可访问的事件。
也许我只是错过了这个活动?
如果不:
有没有办法使用“调整大小”事件来确定用户已停止调整大小?
所以到目前为止,这是我的答案:
由于架构需求,我的略有不同,但这是一个通用的解决方案
var isResizing = false;
var wndw = $(element).kendoWindow({
// .....
resize: OnResize,
// .....
}).data('kendoWindow');
function onResize() {
isResizing = true;
}
$('body').on('mouseup', '.k-window', function() {
if(isResizing){
// **Your 'Stopped' code here**
isResizing = false;
}
});
您是否考虑过使用 underscore.js debounce?我已经成功地使用它来仅在调整大小事件停止出现一段时间(在低于 300 毫秒的情况下)后才触发然后更改。这确实为捕捉结尾增加了一点延迟,但如果你像我一样只想存储最终大小,那么它工作得很好。这是上面代码的版本,但使用了下划线去抖动:
var wndw = $(element).kendoWindow({
// .....
resize: _.debounce( this.hasResized, 300)
// .....
}).data('kendoWindow');
//This is called at the end of a resize operation (using _.debounce)
function hasResized (args) {
// ** Your code here **
};
希望有帮助。