jquery ui实现动态添加元素可拖拽

发布于 2022-08-25 01:11:27 字数 1159 浏览 9 评论 0

代码如下

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
    <style>
        .draggable { width: 200px; height: 200px; border: 1px dotted #000 }
    </style>
    <script>
        $(function() {
            $( ".draggable" ).draggable();
            $("#add_elem").click(function(){
                  $elem = '<div class="draggable">方框B</div>';
                  $('body').append($elem);
            });
        });
    </script>
</head>
<body>
<button id="add_elem">添加元素</button>
<div class="draggable">
  <p>方框A</p>
</div>
</body>
</html>

效果图如下:
jqueryui.png
如图中:
方块A可以拖拽,这个可以理解,但是当点击添加元素按钮生成方块B后,方块B不可以拖拽,这是为什么?有什么办法可以实现对方块B的拖拽?

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

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

发布评论

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

评论(3

倾听心声的旋律 2022-09-01 01:11:27

= =必然不能。。 .draggable()是主动调用 才会在elem上添加额外的class才能达到拖拽效果。

 $(function() {
        
            $( ".draggable" ).draggable();
            $("#add_elem").click(function(){
                  elem = $('<div/>').addClass('draggable').text('方框');
                  elem.draggable();
                  $('body').append(elem);

            });
        });

jsfiddle:http://jsfiddle.net/77Dj2/3381/

南…巷孤猫 2022-09-01 01:11:27
$( ".draggable" ).draggable();

↑ 只是对 “当前” 所有 .draggable 启用拖拽
而你的 B 是 “事后” 加的
如果要让 B 也可以拖,只需在生成的时候再次调用 draggable

浮云落日 2022-09-01 01:11:27

@木木兔66 的解决方法是对的!
@木木兔66 能不能帮忙看下http://segmentfault.com/q/1010000002763290 这个问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文