2012-12-26 169 views
0

我想創建一個水平滾動的時間軸,其中人們可以在時間軸上拖動事件。 爲此,我創建了一個動態網格並使用jQuery ui拖放。jQuery拖放設置元素的位置

它運行良好,但是當我水平滾動它,下降元素的位置並沒有改變。所以,可能我必須保持所有掉落的元素位置。 有沒有什麼簡單的方法來實現這一點,我的意思是與CSS等。?

var dropBox; 
    var drag; 
    var maxEventsInMonth = 10; 
    var maxDataRow = 6; 

請參考。

http://jsfiddle.net/dipal/GSNrX/14/

回答

1

你可以克隆上的dragstart元素,並通過克隆更換目標HTML和刪除拖動的元素。所以你有圖像,因爲它本來會在網格內。

我只是做了的jsfiddle(http://jsfiddle.net/uDYEr/)出你的默認代碼並註釋掉handleDrop功能怎麼一回事,因爲這會導致錯誤,我不想清理你的代碼;-)

主要是我做了以下內容:

增加了兩個新的增值經銷商:

var dragClone = false; 
    var dragElement = false; 

克隆上開始元素:

 $('#drag li').draggable({ 
      revert: "invalid", 
      cursor: "move", 
      start : function() { 
       dragClone = $(this).clone(); 
       dragElement = $(this); 
      } 
     }); 

然後附加dragClone到目標,並刪除dragElementdrop

 dropBox.droppable({ 
      accept: "#drag li", 
      scroll: true, 
      drop: function (event, ui) { 
       $(this).html(dragClone); 
       dragElement.remove(); 
       // handleDrop($(this), event, ui); 
       return true; 
      } 
     }); 

希望這會有所幫助。或者至少讓你知道如何做到這一點。