2013-01-16 107 views
1

我有這個具體情況: enter image description here 圖片顯示很不錯。所以我正在開發以下操作:如何處理丟棄元素上的子元素?

  • Sortable Div的方法.sortable()本身。可分類的項目分類很好。
  • DroppableDiv本身擁有方法.droppable()。 DragItems在他們自己的方法上有.draggable()

我的問題

我想要做的是處理上是從集裝箱掉落DragItem排序項。 enter image description here

在這個例子中,我拖&下降DragItem 2Sortable Item 2。我需要在DroppableDiv.droppable({drop : function(event, ui) {}});內處理Sortable Item 2

我已經搜索eventui對象,但我還沒有找到解決方案。

另外對不起,我沒有給anny小提琴,但我有在jsfiddle/jsBin中創建工作示例的問題。

任何幫助,將不勝感激。

回答

0

在這種情況下,我已經寫了我自己的函數:

function findPosition(position) { 
    var container = $("#DroppableDiv"); 
    var sortableItems = container.find("li"); 
    var searchedItem = null; 

    for (var i = 0; i < sortableItems.length; i++) { 
     var item = sortableItems.eq(i); 
     var itemPosition = item.position(); 
     var itemWidth = item.css('width'); 
     var itemHeight = item.css('length'); 

     if (position.left < parseFloat(widgetPosition.left) + (parseFloat(widgetWidth) * 0.75) && position.top < parseFloat(widgetPosition.top) + (parseFloat(widgetHeight) * 0.75)) { 
      searchedItem = widget; 
      break; 
     } 
    } 

    return searchedItem; 
} 

這是一個從稱爲:

$("#DroppableDiv").droppable({ 
     accept: 'li', 
     drop: function (event, ui) { 
      //here is little trick for check is event comes from drag or sort(only in my case) 
      if (ui.draggable.context.childElementCount === 0) { 
       var newWidgetPosition = findPosition(ui.position); 
      } 
     } 
    });