如何在Kendo UI窗口中检测resizeStop事件?

时间:2012-12-21 02:09:11

标签: kendo-ui

标题解释了所有......

当我知道用户已完成调整大小时,我需要执行自定义操作,但是从我在Kendo UI文档中可以找到的内容中,没有任何事件可供我访问“调整大小”,我无法使用。

也许我只是错过了这个活动?

如果不是:

有没有办法使用'resize'事件来确定用户是否已停止调整大小?

2 个答案:

答案 0 :(得分:1)

所以这是我到目前为止的答案:

由于架构需求,矿区略有不同,但这是一般解决方案

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;
    }
});

答案 1 :(得分:0)

您是否考虑过使用underscore.js debounce?我已成功使用它仅在调整大小事件停止一段时间后触发然后更改(在300ms以下的情况下)。这确实增加了一个小的延迟来捕捉结束,但如果像我一样你只想存储最终大小然后工作正常。以下是上述代码的版本,但使用下划线去抖:

  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 **
  };

希望有所帮助。