javascript - JQuery - 如何在每次按下按钮时创建一个新的可拖动 div

标签 javascript jquery html jquery-ui jquery-draggable

使用 JQuery,我需要能够按下按钮并创建一个可拖动的 div。我的代码如下

我的正文有以下样式

    <style>
        #draggable {
            width: 100px;
            height: 100px;
            background: #ccc;
        }
    </style>

这是我想要放置 div 的容器以及应该创建新 div 的按钮。当我在页面加载时创建 div 时,它是可拖动的并且按预期工作。

    <container id="area">
        <a class="btn btn-primary" id="create_block">Create</a>
        <div id="draggable">Draggable</div>
    </container>

然后,我在正文中添加了这个脚本,该脚本在单击按钮时创建可拖动的内容,并且根据我的理解,该代码使所有具有 id="draggable"的内容都可拖动。

    <script>
        $( "#create_block" ).click( function() {
            $( '<div/>' ).attr({
                'id' : 'draggable'
            }).appendTo("#area");
        });

        $( '#draggable' ).draggable();
    </script>

当我单击该按钮时,它会创建一个样式正确的 div,但不可拖动。

我不确定这有什么问题。我看过类似事物的一些不同示例,但似乎这应该可行。我缺少什么?我正在使用 bootstrap,但没有使用其他框架。

如何制作一个新的 div 以及通过按下按钮创建的所有其他 div,可拖动?

最佳答案

这里的例子http://jsfiddle.net/eb34jztf/

您需要为每个新创建的元素启动可拖动功能,并且以后请不要在一个页面上使用相同的 id 值:)

$("#create_block").click(function () {
$('<div/>').attr({
    'class': 'draggable'
}).draggable().appendTo("#area");
  //initiate draggable on every new created elements
});


//Don't need this part if the draggable elements are only created on click
$('.draggable').draggable(); // initiate the first draggable element that you already have

关于javascript - JQuery - 如何在每次按下按钮时创建一个新的可拖动 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108864/

相关文章:

javascript - 如何在 JavaScript 文件中嵌入 CSRF token ?

javascript - 在代码片段中加载 jQuery 并将元素添加到空白页面

javascript - AJAX 请求复制整个页面

jquery - 尝试使用 JQuery 选择表格最后一行中除第一个 TD 以外的所有内容

php - 如何创建一个让你选择颜色的 Twig (颜色选择器)?

javascript - 在 PHP 中解码 javascript 数组

javascript - 滚动触发器不适用于 forEach() 方法 - JavaScript

jquery - 调整图像大小但保持其比例——是否可以通过 HTML、CSS 或 jQuery 实现?

javascript - 当代码位于 &lt;script&gt; 标记或 .js 文件中时,性能是否存在差异?

javascript - <select> onchange 选择不改变