当前位置: 首页 > 知识库问答 >
问题:

为什么jQuery UI不能再对元素重新排序了?

姚和顺
2023-03-14

我已经创建了一个可拖动和排序的项目。您应该能够将下拉元素向上拖动到红色框上。该元素将显示在红色框中,一些新的表单元素将显示在蓝色框中。然后,您应该能够将更多元素拖到红色框上,并对其重新排序。它的行为应该与jQuery中的示例类似。我实际上并不处理对象的放置,而是将其留给jQuery处理。

目前,我可以将新元素添加到红色框中,但是现有元素不会移动,以允许我将新元素放置在列表中的任何位置。此外,当我试图重新组织现有的列表时,当我选择一个元素时,它会出现在第一个位置,我可以拖动它,列表不会再有反应,当我试图将它放在列表的其他地方时,它会突然出现这是原来的地方。

html中设置了Sortable

$(".sortable").sortable({
    over: function() {
      removeIntent = false;
    },
    out: function() {
      removeIntent = true;
    },
    beforeStop: function(event, ui) {
      if (removeIntent === true) {
        var element_id = ui.item[0].id;
        model.remove_element(element_id);
        element_view.remove_element(ui.item);
      }
    },
    stop: function(event, ui) {
      var element = ui.item;
      var new_element = element_view.add_element(element, id);
      if (new_element) {
        var form_element_type = element[0].classList[0];
        var form_data = model.add_element_information_to_model(id, form_element_type);
        data_view.add_element(id, form_data);
        id++;
      }
      var list_of_element_ids = element_view.get_order_of_elements();
      data_view.update_order(list_of_element_ids);
      model.reorder_elements(list_of_element_ids);
    }
  });

这些函数实际上都不会影响红色框中元素的布局。有些会影响蓝色方框,但这是对红色方框中发生的情况的单独反应。

我不知道是不是jQuery和Sortable的某些方面我弄糟了,或者只是我写的一些代码,但我认为html本身可能有问题。什么是取消可排序功能?

请参见此处的代码


共有2个答案

陈琪
2023-03-14

我发现了问题,在超文本标记语言中,我使用引导来设置列大小

<div class="dropDown form-group draggable">
          <div>
            <label class="col-xs-12">dropdown</label>
          </div>
          <div class="form-group">
            <select class="form-control col-xs-12">
              <option value="option1">Option 1</option>
              <option value="option2">Option 2</option>
            </select>
          </div>
        </div>

我必须再深入一点,找出它重新开始工作的原因。

我可以稍后使用toggleClass添加引导列。

华季同
2023-03-14

在我看来你可能用错了选择器:

尝试:

$("#form_display").sortable({});

或者:尝试将可排序类添加到#form_display

我做了测试,盒子是可以分类的。希望这能有所帮助!让我知道,如果你有问题。

 类似资料:
  • 本文向大家介绍jQuery拖动元素并对元素进行重新排序,包括了jQuery拖动元素并对元素进行重新排序的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery拖动元素并对元素进行重新排序的实现方法,分享给大家供大家参考,具体实现内容如下 效果图: 具体内容如下: 从上图可以看出我们今天要实现的功能。当用户拖动一个图片时,就能改变图片的已有排序并更新表中的排列顺序。比如用户可以随意拖动我

  • 我从课本上抄了一个例子,但它拒绝编译。我是不是在什么地方打错了?出于某种原因,在客户端代码中,collections.sort(words)不允许程序编译。任何帮助都很感激。代码复制自Stuart Reges和Marty Stepp的“构建Java程序”第二版。我正试图通过复制来理解它。 该程序应该将一个CalendarDate对象装入一个ArrayList中。通过实现CalendarDate的可

  • 我几乎没有元素。我可以拖放元素。。。但是,我的要求是我需要在放置后对元素进行排序(释放鼠标后,元素必须移动到目标位置)。请帮帮我。。。这是我使用的代码,

  • 问题内容: 我知道不可能重新启动使用的Java Thread对象,但是我找不到 为什么 不允许这样做的解释。即使可以保证线程已完成(请参见下面的示例代码)。 我不明白为什么(至少是)方法不能以某种方式将Thread对象的内部状态重置为与刚创建Thread对象时相同的值。 示例代码: 问题答案: 我知道不可能重新启动使用的Java Thread对象,但是我找不到为什么不允许这样做的解释。即使可以保证

  • 根据这本在线书籍,C#中的关键字不能防止重排序写操作后跟读操作。它给出了这个例子,其中和最终都可以设置为,尽管和是: 这似乎符合10.5.3中的规范: 对易失性字段的读取称为易失性读取。易失性读取具有“获取语义”;也就是说,在指令序列中,它保证发生在对内存的任何引用之前,而对内存的任何引用发生在它之后。 对易失性字段的写入称为易失性写入。易失性写入具有“释放语义”;也就是说,它保证在指令序列中写入

  • 我正在复习快速排序的实现(来自CLRS第3版)。我发现数组的递归除法从低索引到中1,然后从中1到高。 合并排序的实现如下所示: 由于它们都使用相同的除法策略,为什么快速排序忽略中间元素从到和到没有包含,而mergesort包含?