首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖动可创建可拖动的jQuery用户界面,并使用鼠标移动直至释放。

拖动可创建可拖动的jQuery用户界面,并使用鼠标移动直至释放。
EN

Stack Overflow用户
提问于 2013-10-29 13:19:02
回答 1查看 1.4K关注 0票数 0

在拖动一些html元素后,我需要它来复制自身,更改某些内容,使jQuery UI可拖放,并与鼠标光标一起移动,直到jQuery释放鼠标为止。

到目前为止,我成功地克隆、修改并执行了可拖动的操作(请参阅http://jsfiddle.net/meridius/qdVue),无论我做什么,我都无法使它移动。

我们很感激你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 13:38:11

您需要做的是将全局变量设置为当前对象,并监视元素(或文档)的MouseMove事件,并将元素的左/顶位置设置为鼠标的位置。

代码语言:javascript
复制
var currentObj = null;

$(".js-factory")
    .on("mousedown", ".js-form .js-base", function (event) {
        var figurka = $(this).clone(false).addClass("figurka").draggable({
            snapMode:   "inner",
            snapTolerance   :   55
        }).wrapInner("<div class='fig-wrap'></div>");
        $(".js-park").append(figurka);
        currentObj = figurka;
    });
$(document).mousemove(function(e) {
    if (currentObj) {
        currentObj.css({'top':e.clientY - 20, 'left':e.clientX - 20});
    }
});
$(document).on('mouseup', function() {
    currentObj = null;
});

在前面的代码中,我们将currentObj的值设置为figurka对象ou create的值,然后监视文档的mousemove事件,并将创建的对象移动到鼠标-20的位置。一旦mouseup事件发生在文档上,我们将currentObj重置为null

示例JSFiddle

编辑

在我的Fiddle中,似乎出现了一个奇怪的现象,为什么元素的位置不在鼠标上。这是由您的float:right;元素的base CSS属性造成的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19659359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档