【发布时间】:2021-10-08 21:55:19
【问题描述】:
我的页面上有一些可拖动的组件。他们有课 可拖动的。当它被拖动并停止时,我需要获取左侧和顶部位置
function init() {
var p = $('#groups-parent');
$('.draggable').draggable({
obstacle: ".obstacle",
preventCollision: true,
containment: [
p.offset().left, p.offset().top, p.offset().left + p.width() - 225, p.offset().top + p.height() - 50
],
start: function(event, ui) {
$(this).removeClass('obstacle');
},
stop: function (event, ui) {
console.log(ui);
$('#groups-parent').css({ 'min-height': Math.max(500, ui.position.top + 50) });
$(this).addClass('obstacle');
getTopLeftPosition();
}
});
}
这是我的函数,应该获取左侧和顶部的位置。
function getTopLeftPosition(e) {
var coordX = e.pageX - $(this).offset().left,
coordY = e.pageY - $(this).offset().top;
alert(coordX + ' , ' + coordY);
}
这不起作用。我在浏览器中得到的只是这个错误消息
无法读取未定义的属性(读取“左”)
我怎样才能得到这个左侧和顶部的位置?警报应该会指出这一点。
【问题讨论】:
-
.position()或.offset()不适合你吗? -
您还需要将
event传递给您的函数以使其工作。 -
请问它会是什么样子? getTopLeftPosition(事件 e) ?
-
也可以从
ui.position对象中获取位置。
标签: javascript jquery