如何获取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
事件,请查看文档。为此,您必须使用dragstart
或dragend
。
第二个问题是javascript框架在功能上各不相同。因为jQueryUI中的this
是模态元素,这并不意味着它对所有其他框架都是一样的。在Kendo UI上,this
关键字在大多数情况下是小部件的实例,这比只引用目标元素更有意义。小部件的实例有一个名为element
的属性,它是创建小部件的目标元素。
考虑到这一点,您的代码应该是:
dragstart: function() { // or dragend
let offset = $(this.element).offset();
}
演示