2011-03-26 23 views
0

我有一個頁面上的溢出:自動,很多有更多的李比適合可見區域的數量。當我從一個div拖放到另一個div時,如果目標div上面的div有一個長列表,$(this)將返回該div的ID而不是我的物品已經着陸的div。在視覺上和在修訂後的HTML中,它工作正常,但我需要能夠獲得它登陸的div的id,似乎無法弄清楚。似乎必須有一個解決方法?

我的目標是可靠地抓住接收​​div的id。放置事件觸發時,位置沒有改變。也許它會按照相反的順序來初始化每個可放棄的div,而不是使用類「可排序」,但可以有10或15個,它看起來非常笨拙。

這裏是我的初始化代碼(試圖貪後:TRUE):

$(".sortable").sortable({ 
     connectWith : ['.sortable'], 
     dropOnEmpty : true, 
     placeholder : "ui-state-highlight", 
     revert: true, 
     start : function(event, ui) { 
      getEquip($(ui.item).attr('id').slice(8)); 
     } 
    }); 
    $(".sortable").draggable({ 
     helper: "clone", 
     revert: "invalid" 
    }); 
    $(".sortable").droppable({ 
     greedy : true, 
     drop: function(event, ui) { 
      var msg = 'Moved ' + $(ui.draggable).text() + ', id#' + $(ui.draggable).attr('id').slice(8) + ' to'; 
      msg += ' ' + $(this).attr('id'); //<<== gives wrong id if list above is long 
      msg += ' ' + $('#' + $(ui.draggable).attr('id')).parent().attr('id'); 
      writeFooter(msg);//Moved hydrant wrenches, id#164 to sortable16 sortable22 
     }, 
    }); 
+0

你的選項'貪婪補充:TRUE'您可放開?請提供一些代碼,以便我們可以幫助您 – rsplak 2011-03-26 23:32:21

+0

感謝您的回覆!我嘗試貪婪而沒有成功,並在上面添加了一些代碼。 – 2011-03-27 00:23:52

回答

0

找到一個解決辦法。如果我通過id從下往上初始化可丟棄的div,即以相反的順序,問題就會消失。以前我是按班級初始化它們的。修改後的代碼片段看起來是這樣的,其中subloc [I-1] [0]是sublocation編號:

for (var i = subloc.length; i > 0; i--) { //init droppables backwards to overcome overflow bug 
     $("#sortable" + subloc[i-1][0]).droppable({ 
      tolerance : 'intersect', 
      drop: function(event, ui) {...