【发布时间】:2020-05-26 02:39:22
【问题描述】:
我对 Javascript 和 JQuery 有点陌生,所以请原谅我扼杀了这个解释。我创建了一个图像库,用户可以在其中拖放到放置区。我正在使用 revert 选项,因此最初未放置在 dropzone 中的图像会返回到其原始位置(使用 revert: 'invalid')。现在,当我将图像从我的“图库”(这是一个可滚动的 div)拖到放置区,然后从放置区出来时,它会完美地回到放置区中的位置。但是,如果我将图片从图片库中在 库中拖入而不是拖入放置区,则它应该恢复到其在图库中的原始位置。相反,它会恢复原状,然后完全消失!我在控制台中对此进行了检查,即使我从未指定此样式选项(我相信 $(this).hide() 会提示),它也会将原始图像的 css“显示”创建为“无”。我尝试在我的 CSS 中手动更改它,但它没有用。我错过了什么吗?让我知道我是否可以提供任何澄清。我无法创建 JSFiddle,因为项目文件太多。谢谢!
(澄清一下,我需要一个克隆的图像,这样我就可以将它拖出我的可滚动 div,我使用 $(this).hide() 所以我没有无限复制拖动的图像,但它是还有似乎导致问题的原因)。基本上,我想要这样,如果我的图像最初被拖到画廊内,它应该恢复到画廊内的位置,但现在它正在恢复然后消失。
$('.item').draggable({
revert: "invalid",
helper: 'clone',
start: function () {
$(this).hide();
$('.item').css('cursor', 'grabbing');
},
stop: function () {
$('.item').css('cursor', 'grab');
}
});
$("#arena").droppable({
accept: '*',
drop: function (event, ui) {
$('.item').css('cursor', 'grab');
var parentOffset = jQuery('#arena').offset();
if(!ui.draggable.hasClass("newItem")) {
var new_item = $(ui.helper).clone().removeClass('item').addClass("newItem");
new_item.draggable({
revert: 'invalid',
start: function () {
$(ui.helper).hide();
$('.newItem').css('cursor', 'grabbing');
},
stop: function () {
$('.newItem').css('cursor', 'grab');
}
}).css({
'position': 'absolute',
'left': (ui.position.left - parentOffset.left) + 'px',
'top': (ui.position.top - parentOffset.top) + 'px',
});
$(this).append(new_item);
gallery_count--;
}
【问题讨论】:
标签: javascript html jquery css