gpt4 book ai didi

javascript - 为什么我的 UI/Draggable 'create' 事件被传递了一个空的 'ui' 对象?

转载 作者:行者123 更新时间:2023-11-29 15:46:17 25 4
gpt4 key购买 nike

我在一个 div 中有一个图像。我希望该图像可以在 div 中拖动,并且我想存储图像的坐标。在 Draggable 上使用“停止”事件对此效果很好,并且完全符合我的要求。我还希望在“创建”事件上运行相同的代码。但是,在“创建”事件中使用相同的代码时,传入的“ui”对象似乎是空的:

$(document).ready(function() {
$('#imageitem').draggable({
containment: "parent",
stop: function(event, ui) {
console.log(ui); // results in full object being printed
},
create: function(event, ui) {
console.log(ui); // results in empty object being printed: Object { }
},
});
});

UI/Draggable 的文档显示创建回调应该接收“ui”对象:

$( ".selector" ).draggable({
create: function(event, ui) { ... }
});

我正在尝试访问 ui.offset,由于对象为空,所以它不可用。如果我理解正确,此时“ui”对象应该已经存在于 DOM 中,因为我只是将一个可拖动对象附加到它。我不应该在可拖动事件的“创建”期间访问 ui.offset 吗?

不可否认,我是 jQuery 的新手,所以我可能在这里遗漏了一些东西。

最佳答案

看起来您应该能够在创建可拖动项时知道它的偏移量。只需在页面加载后检查元素。如果您需要传递这些值,难道您不能为它们创建默认值——或者对象将被随机定位吗?

其次,(忽略了 ui 元素在创建时应该有很多信息的事实)你应该能够通过查找来访问页面上任何元素的偏移量该元素并在其上调用 .offset()。即,在您的 create 语句中,通过您要使用的任何选择器定位可拖动元素,并以这种方式找出偏移量:

console.log($("#idOfDraggableElement").offset());

编辑:这是一个jsfiddle显示如何在创建时访问属性。

关于javascript - 为什么我的 UI/Draggable 'create' 事件被传递了一个空的 'ui' 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com