jQuery UI Draggable/Sortable - 动态添加的项目不可拖动

标签 jquery jquery-ui jquery-ui-sortable jquery-ui-draggable

我有一组可拖动/可排序的列表,我正在向其中动态添加项目,但问题是,一旦添加了项目,就无法将它们移动到新列表。您可以在此处查看该功能:http://jsfiddle.net/Y4T32/2/

将一个项目从可用列表拖到目标列表之一,您就会明白我的意思。现在添加一个“标注”并尝试将新项目拖动到目标列之一。

我在这里找到了另一个可以按我想要的方式工作的答案,但无法重现他们得到的结果(当然,现在找不到答案)。对我在这里做错了什么有任何见解吗?

最佳答案

更新答案

您必须为添加的每个元素调用.draggable()。您在初始化时使用的 jQuery 选择器仅适用于当前存在的元素,不适用于您将创建的元素。

这里有一些应该可以工作的 JS:

var draggable_opts = {
            connectToSortable: ".sph-callout-portlet",
            helper: "clone",
            opacity: 0.75,
            revert: 'invalid',
            stop: function(event, ui) {
                //alert(ui)
            }
        };

$(function() {
    $( ".sph-callout-portlet" ).sortable({
        opacity: 0.75,
        placeholder: "ui-state-highlight",
    }).disableSelection();

    $( "#sph-callout-portlet-avail li" ).draggable(draggable_opts);

    $(document).on("click",'#addNewCo',function(e){
        e.preventDefault();
        var newCo = $('<li>New Callout</li>').draggable(draggable_opts);
        $('#sph-callout-portlet-avail').append(newCo);
    });
});​

http://jsfiddle.net/SGevw/

关于jQuery UI Draggable/Sortable - 动态添加的项目不可拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626108/

相关文章:

javascript - 在 jquery 函数中引用 rails 图像

Jquery 效果在固定菜单上延迟

jquery 拖放可在不同的 div 和 div 类之间排序

jquery-ui - 总是收到 "The field Date must be a date"验证消息

jQuery UI 对话框按钮定位

jquery Sortable connectWith 调用 update 方法两次

javascript - 如何获取 "this"变量混合 php 和 jQuery?

jquery - 使用 jquery 附加悬停事件多个元素

javascript - jQuery Sortable - 如果拖出,则将项目移动到列表顶部。

jQuery Sortable - 事件被调用太多次