【问题标题】:jquery ui sortable - capture order even if user does not change orderjquery ui sortable - 即使用户不更改顺序也能捕获顺序
【发布时间】:2019-12-06 11:21:16
【问题描述】:

我有一个动态创建的 div 元素列表,我事先不知道会有多少项,它们是在上一步中定义的。

我可以使用 jquery ui sortable 对它们进行排序没有问题,当用户更改任何内容时,以下代码会为我提供我想要的排序顺序。 (只是在调试时打印出排序顺序,完成后将存储在数据库中。)

$(function() {
               update: function(event, ui) {
                  displayOrder = $(this).sortable('toArray').toString();
                  $("#sortable-result").text (displayOrder);
               }
            });
         });

这给了我在 csv 列表中期望的可排序元素的字符串。

但是,如果用户不更改订单的任何内容,我还想存储显示顺序。因为列表是动态创建的,我不一定知道哪些元素会在那里,所以我不能假设默认顺序。

所以我查看了 API 中的事件并尝试修改以下代码。 create 事件似乎是唯一可以满足我需要的事件。

 $(function() {
            $('#sortable-fields').sortable({
               create: function(event, ui) {
                  displayOrder = $(this).sortable('toArray').toString();
                  $("#sortable-result").text (displayOrder);
               },
               update: function(event, ui) {
                  displayOrder = $(this).sortable('toArray').toString();
                  $("#sortable-result").text (displayOrder);
               }
            });
         });

但是,这只是在 'sortable-none' 的 csv 字符串中给了我一个值。

当用户更改顺序和不更改顺序时,如何获取可排序列表顺序?

谢谢。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    好的,在查看了我自己的问题后,我将这变得比需要的更难。

    我之前说过,可排序列表是动态加载的。如果它是动态加载的,这意味着我必须已经在变量中拥有默认排序顺序,否则我一开始就无法将它们放入可排序列表中!

    我将把它留在这里,以包含其他人与我如何实现这一目标的示例有类似思路的人。

    如果我的动态列表来自一些以前的 javascript/jquery:

    $.each(SortableItemsArray,function(index, value){
    // code to print out sortable elements html here.
    $('#sortable-fields').append('some html here')
    
    });
    
    
    // more code...
    
    $(function() {
                   update: function(event, ui) {
                      displayOrder = $(this).sortable('toArray').toString();
                      $("#sortable-result").text (displayOrder);
                   }
                });
    
    
    // just use the SortableItemsArray var as the default order, as that is where the list came from in the first place.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多