【问题标题】:How to use jQuery sortable to update div ID's when a user moves an element?当用户移动元素时,如何使用 jQuery 可排序来更新 div ID?
【发布时间】:2016-08-28 02:16:29
【问题描述】:

我正在使用 jQuery sortable 来允许用户在页面上移动元素。每个 div 元素都有一个唯一的 ID。当用户将页面上的一个元素与另一个元素交换时,我还想交换这些元素 ID 并提醒 ID 顺序的新列表,因此我可以将这个新顺序保存到后端。

当用户移动元素时,我正在努力获取子元素 ID。到目前为止,我的 jQuery 是:

  $(function() {
    $("#sortable").sortable({
      stop: function(ev, ui) {
        var children = $('#sortable').sortable('refreshPositions').children();
        alert('Positions: ');
        $.each(children, function() {
            alert($(this).attr('id'));
        });
      }
    });
    $("#sortable").disableSelection();
    var drag_id = $('.container').attr("id");
  });

但警报消息始终为undefined。当用户进行更改并将其保存到数组然后alert此数组时,如何交换 div ID?

FIDDLE

【问题讨论】:

    标签: javascript jquery html jquery-ui jquery-ui-sortable


    【解决方案1】:

    你必须为li标签设置ID:

    $(function() {
        $("#sortable").sortable({
          stop: function(ev, ui) {
            var children = $('#sortable').sortable('refreshPositions').children();
            alert('Positions: ');
            $.each(children, function() {
              alert($(this).attr('id'));
            });
          }
        });
        $("#sortable").disableSelection();
        var drag_id = $('.container').attr("id");
    });
    

    现在检查小提琴:

    Fiddle

    【讨论】:

    • 感谢您的回答。这解决了警报问题,但在移动时不会交换 li> 的 ID
    • jsfiddle.net/7rbv20yd/6 检查这将按顺序创建 ID
    【解决方案2】:

    下面的代码还是会有所帮助?

    $(function() {
      $("#sortable").sortable({
        stop: function(ev, ui) {
          var children = $('#sortable').sortable('refreshPositions').find(".container");
    
          $.each(children, function() {
            alert($(this).attr('id'));
          });
        }
      });
      $("#sortable").disableSelection();
      var drag_id = $('.container').attr("id");
    });
    

    【讨论】:

    • 感谢您的回答@kamiya55。这解决了警报问题。但是不交换元素的 ID 吗?例如<div id="container1">1</div>在位置1<div id="container4" class="container">4</div>在位置4交换。更新的代码应该是:<div id="container1">4</div><div id="container4" class="container">1</div>
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多