2012-11-19 47 views
0

當Draggable停止事件正在運行時,我需要找到一個可拖拽的控件,並且我得到了一個ID。這可能嗎?所以基本上我的想法是這樣的:當「out」函數運行時,我存儲dropId。然後,如果項目正在恢復,我需要設置舊的Droppable只接受恢復的Draggable。JQuery,Draggable和Droppable - 找到一個Droppable,我得到ID

這是我的代碼部分:

 var dropId; 
     $('.droppable').droppable 
     ({ 
      hoverClass: "ui-state-active", 
      drop: itemDrop, 
      out: function (event, ui) { 
       $(this).droppable('option', 'accept', '.draggable'); 
       ui.draggable.zIndex = 6000 
       dropId = $(this).attr("id"); 
      }, 

     $('.draggable').draggable 
     ({ 
      revert: 'invalid', 
      cursor: 'move', 
      zIndex: 5000, 
      stop: function (event, ui) { 
       var draggableId = $(this).attr("id"); 
       if (event.reverted) { 
        // dropID.droppable('option', 'accept', draggableId), something lite this 
       } 
      } 

     }); 

我itemDrop功能基本上更新數據庫,並將此: $(本).droppable( '選項', '接受',ui.draggable) ;

這是有點什麼後,當一個項目正在恢復。

希望我有點清楚!如果沒有,請告訴我。

謝謝!

回答

1

你需要在你的代碼的微小變化,看看這個

$("#" + dropId).droppable('option', 'accept', "#" + draggableId); 
+0

感謝您的回答。我最終使用這種方法,保存對象本身,而不僅僅是它的ID:dropId = $(this);問題是out函數總是在用戶離開droppable時觸發。我只想將dropID設置爲第一個。所以我用了一個計數器:if(counter == 0){dropId = $(this);計數器+ = 1; }然後,當一個可拖動的元素被丟棄或被還原時:counter = 0;希望這可以幫助別人!現在解決了。 – user1522985