首页 > 解决方案 > 获取可拖动剑道窗口的偏移量

问题描述

我怎么能得到偏移量();我的剑道窗口被拖动时...例如,在 jQuery UI 中,以下工作:

$('#easterEgg').draggable(
    {
        drag: function(){
            var offset = $(this).offset();
            var xPos = offset.left;
            var yPos = offset.top;


            $('#posX').text('x: ' + xPos);
            $('#posY').text('y: ' + yPos);
        }
    });

jsfiddle 演示

但是当我尝试将相同的内容与 kendo ui 合并时,我什么也得不到:尝试了以下几种变体,没有错误,只是没有输出。我怎样才能对剑道 ui 做同样的事情?

$("#easterEgg").kendoWindow({
        draggable: true,

         drag: function(){
            var offset = $(this).offset();
            var xPos = offset.left;
            var yPos = offset.top;


            $('#posX').text('x: ' + xPos);
            $('#posY').text('y: ' + yPos);
        }
});

标签: javascriptjquerykendo-ui

解决方案


您的代码中有一些错误。

首先,没有drag事件,请查看文档。你必须使用dragstartor dragend

第二个问题是javascript框架在功能上彼此不同。因为this在 jQuery UI 中,modal 的元素并不意味着它对所有其他框架都相同。在大多数情况下, Kendo UIthis关键字是小部件的实例,这比仅引用目标元素更有意义。小部件的实例有一个名为的属性element,它是创建小部件的目标元素。

鉴于此,您的代码应为:

dragstart: function() { // or dragend
    let offset = $(this.element).offset();
}

演示


推荐阅读