2017-08-16 24 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