javascript - 将元素从列表拖到 div

标签 javascript jquery html css jquery-ui

我正在尝试构建一个拖放式字母编辑器。基本上,元素将在左侧,可以将其拖过,而字母工作区将在右侧。在右侧,他们应该能够将可拖动元素移动到他们想要的任何位置。一旦他们从左向右拖动一个元素,它不应该从列表中删除该元素,而是在右侧显示隐藏的 div。这将允许他们多次复制同一元素。

    jQuery( "#letter .draggable" ).draggable({ 
    grid: [ 20, 20 ],
    containment: "parent",
    stop: function(event, ui) {
        var $newPosX =  jQuery(this).offset().left - jQuery(this).parent().offset().left;
        var $newPosY =  jQuery(this).offset().top - jQuery(this).parent().offset().top;

        console.log($newPosX.toString() + ', ' + $newPosY.toString());
    }
});

这是一个 example fiddle我有布局和 CSS,以及最初的可拖动。只需要帮助连接两者。

最佳答案

我想我想出了一个 fiddle那就是你想要的。

你应该看看这个jQuery UI droppable demo .我基本上从可转换演示的购物车交互中复制了 fiddle 中的 jQuery 代码。

$( "#letter-elements li" ).draggable({
    appendTo: "body",
    helper: "clone",
    connectToSortable: "#letter"
});

$( "#letter" ).droppable({
    activeClass: "ui-state-default",
    hoverClass: "ui-state-hover",

}).sortable({
     grid: [ 20, 10 ]        
});

一些有助于清理代码的东西,您正在使用 css 样式表,因此您应该摆脱 HTML 样式标签。

您在左侧使用列表,但您的测试是右侧的跨度。认为最好坚持双方的名单。

您的第一个标记为 County seal 的列表项有一张隐藏的图片,不知道为什么,但是如果您希望图片在向右移动时显示,您可能需要添加一个类来限制图片的大小。

关于javascript - 将元素从列表拖到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22227555/

相关文章:

javascript - 大写 HTML <option> selected 属性

jquery切换透明盖

javascript - 是否可以使 HTML datetime-local 元素仅生成有效日期?

html - 强制 JAWS 读取一段文本

javascript - 验证器错误 JSON

javascript - 在 React html 中渲染变量

javascript - 'mouseup' 和 'click' 事件有什么区别?

javascript - 使用jQuery从字符串中获取倒数第二个字符位置

javascript - 为什么选择下拉列表返回错误值?

php - 将 JSON 数据发布到外部 URL