获得可拖动剑道窗口的偏移



如何获取offset((;当我的剑道窗户被拖走的时候。。。例如,在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);
}
});

您的代码中有一些错误。

首先,没有drag事件,请查看文档。为此,您必须使用dragstartdragend

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

考虑到这一点,您的代码应该是:

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

演示

最新更新