更改拖动对象并在放置后恢复它

发布于 2024-08-20 04:50:20 字数 636 浏览 4 评论 0原文

请帮助我,我通常知道如何使用可拖动和可放置的类,但我找不到实现此目的的方法:

我有一个大尺寸的图像,需要将其拖放到 div 中。

1)拖动时,我不想在大尺寸图像上移动,而是想使用小尺寸图像(我已经有了,只需更改src)。

2)一旦到达目标div,我想隐藏拖动的图像并在其原始位置再次显示大尺寸图像。

唯一的限制是:“恢复:无效”必须适用。

这是我的代码:

$("#big_img").draggable({ 
    revert: 'invalid', 
    drag : function(e, ui){
        //Change big image with a small version of it
        $(this).attr("src").replace("/Large/","/Small/"); //<--this do nothing
    }
});
$("#target").droppable({
    drop: function(e, ui) {
        alert("was added"); //<-- no problem here.
        //Restore the big_img
    }
});

谢谢。

please help me, I know in general how to use the draggable and droppable classes, but I can not find a way to achieve this:

I have a large-sized image that I need to drag and drop into a div.

1) while dragging, instead of moving around the large-sized image, I want to use a small-sized image (I already have it, just need to change the src).

2) Once it reaches the target div, I would like to hide that dragged image and show again the large-sized image in its original place.

The only restriction is: "revert: invalid" must apply.

This is my code:

$("#big_img").draggable({ 
    revert: 'invalid', 
    drag : function(e, ui){
        //Change big image with a small version of it
        $(this).attr("src").replace("/Large/","/Small/"); //<--this do nothing
    }
});
$("#target").droppable({
    drop: function(e, ui) {
        alert("was added"); //<-- no problem here.
        //Restore the big_img
    }
});

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

与风相奔跑 2024-08-27 04:50:20

我想我解决了这个问题:

使用“helper”,我可以使用其他图像来代替,如下所示:

$("#big_img").draggable({ 
    helper: return $("<img src='"+$(this).attr("src").replace("/Large/","/Small/")+"' />");
});

我只需将其置于鼠标光标的中心,但我认为这不会成为问题。然后,
删除删除的元素也不会成为问题。因此,我不需要恢复图像,因为它并没有真正移动。 :)

如果您有其他选择,我将很乐意阅读。

I think I solved it:

Using "helper", I can achieve to use other image instead, like this:

$("#big_img").draggable({ 
    helper: return $("<img src='"+$(this).attr("src").replace("/Large/","/Small/")+"' />");
});

I just need to center it to the mouse cursor, but that I think won't be a problem. Then,
removing the dropped element won't be a problem either. So, I won't need to restore the image as it is not really moving. :)

If you have another alternative, I will be pleased to read it.

ˇ宁静的妩媚 2024-08-27 04:50:20

String.prototype.replace() 不会修改源字符串,而是返回一个新的修改后的字符串。请尝试以下操作:

$("#big_img").draggable({ 
    revert: 'invalid', 
    drag : function(e, ui) {
        $this = $(this);
        $this.attr("src", $this.attr("src").replace("/Large/","/Small/"));
    }
});

String.prototype.replace() does not modify the source string, but returns a new, modified string. Try the following:

$("#big_img").draggable({ 
    revert: 'invalid', 
    drag : function(e, ui) {
        $this = $(this);
        $this.attr("src", $this.attr("src").replace("/Large/","/Small/"));
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文