0

我正在使用 JQuery UI 在 javascript 中创建一个简单的汇编语言编辑器。我希望能够从指令集中拖动指令并将它们放入可排序的程序中。

但是,我需要将指令集显示为单词列表(操作码),然后在删除它们时更改它们,以便获得可编辑的参数(操作数)。

我尝试在可拖动指令集中使用自定义助手,但是虽然指令一被拖动就会改变,但它会在放下后恢复到原来的形式。现在我正在尝试在可排序中使用删除事件,例如“更新”,以更新删除指令的 DOM,但我找不到仅在指令是新指令而不只是重新排序时执行此操作的方法。

简而言之,我需要知道如何更改可排序中新删除项目的 DOM。

4

1 回答 1

1

您是否尝试过使用接收事件?

$('#list1').sortable({
  connectWith:'#list2',
  receive: function(e, ui){
    ui.item.addClass('new');
  }
});

我创建了这个小提琴来展示如何将一个类添加到正在接收的元素中。

如果你将一个元素#list2拖到#list1它上面,它会得到一个新的类/蓝色背景。但是,如果您只是对现有项目重新排序,则它什么也不做。重新排序新项目也不会对它做任何事情,即。它将保持类/蓝色背景颜色。我选择添加一个类,因为它作为示例更容易,但您可以做任何您需要的事情,例如在收到项目后创建一个输入字段来输入操作数。

这有帮助吗?

编辑:如果您需要将原始元素保留在列表中,试试这个

$('#list2').sortable({
  connectWith:'#list1',
  remove: function(e, ui){
    ui.item.clone().appendTo('#list1').addClass('new');
    $(this).sortable('cancel');
  }
});

它将项目添加到列表的末尾(附加),但我相信通过一些研究,您可以弄清楚如何正确放置它。

于 2013-02-04T16:48:24.507 回答