拖放后 select2 不起作用

After drag and drop select2 not working

我正在使用这个脚本进行拖放。它使块克隆到删除块。在块 1 中有多个 select 列表。当 1 drop multi select list to block 2 它不起作用。

 $('#sa_drag_block li').draggable({
            helper: "clone",
        });
        $('#sa_drop_block').droppable({
            drop: function (e, ui) {
                $(ui.draggable).clone().appendTo($(this));
            }
        });

这里是JSFiddle Link

默认情况下,克隆不会复制事件处理程序和数据。试试 clone(true).

这里有些事情对你不利,但我能够让它发挥作用

  1. 您是从 JavaScript 插件复制输出,它们通常不是为随意克隆而设计的。
  2. 您从未在追加元素后对其初始化 Select2。

因此,您可以通过在最初拖放元素时遵循一个循环来解决几乎所有 JavaScript 插件的这两个问题

  1. 使用插件的 destroy 方法销毁插件,在本例中为 select2('destroy')
  2. 将元素克隆到放置位置。
  3. 重新初始化旧 新元素上的插件。

您可以在此处找到有效的、评论过的 jsfiddle:http://fiddle.jshell.net/uffhvenk/6/