2017-08-16 23 views
0

尝试在以下示例中获取索引正在疯狂驾驶。我使用这个基本代码:停止()函数中的ui.helper索引

http://jqueryui.com/draggable/#sortable

stop()事件,我想知道什么是新元素的索引拖累。例如:

[Drag me down] 
------------- 
[Item 1] 
[Item 2] 
[Item 3] 
[Item 4] 

如果我释放Item 2Item 3之间的新项目在某种程度上我需要得到一个2。正如你可以看到下面,ui.helper.index()是无效的,因为它返回原来的元素的索引([我拖]元素):

$(".sortable").sortable({ 
     // ... 
     receive: function(event, ui) { 
      var indexAtReceive = $(this).data("ui-sortable").currentItem.index(); 
     } 
    }); 

    $(".draggable").draggable({ 
     // ... 
     stop: function(event, ui) { 
      // Here indexAtStop is the index of the original element, 
      //but not the new dragged element 
      var indexAtStop = ui.helper.index(); 
     } 
    }); 

让我知道如果你需要更多相关的代码或测试。先谢谢你。

回答

1

你想在这种情况下ui.item.index()您停止功能里面

$(".draggable").sortable({ 
    // ... 
    stop: function(event, ui) { 
     var indexAtStop = ui.item.index(); 
    } 
}); 
+0

你确定吗?我在停止事件的文档中看不到'ui.item',我想这就是为什么我得到'ui.item是未定义的错误。 – manix

+0

啊,我看到这是设置可拖动,不可排序。这就是为什么。你为什么要实现可排序和可拖动?可排序的实现可拖动。您传递给sortable()的stop函数会有第二个ui参数,这会使项目挂起。你不能访问它,因为你现在正在实现可拖动的,不可排序的。 –

+0

我实现了两个家伙becase(1)Draggable:为了添加新的元素。 (2)。可排序:为了管理项目的顺序(最终在一个数据库中的行)。不过,我认为你的重点在于停止功能。 – manix