2012-08-27 64 views
0

好的,所以我有一個奇怪的問題與jquery排序插件。我試圖在overflow-y:auto div內製作一系列列表。當列表小於容器時,這很有用。但是,一旦列表增長並且容器的溢出正在工作,那麼這些可排序的對象就不再有效。它們不會隨着用戶拖拽列表而向下滾動。Jquery利用鏈接列表內容溢出啓用容器排序

有誰知道如何將滾動或拖動事件附加到容器?我已經嘗試設置容器上的排序並讓孩子處理,但這不會觸發我需要的「接收」事件。另外滾動事件仍然無法正常工作。

這裏是我的插件是如何初始化:

$('.sort-list').sortable({ 
     'connectWith': '.item-container', 
     'items': ".item-wrapper:not(.main-item)", 
     'containment': '.canvas', 
     'placeholder' : "ui-state-highlight", 
     'scroll' : true, 
     'opacity' : 0.8, 
     start: function (event, div) { 
      // set the placeholder size to the proper size 
      $('.ui-state-highlight').css({ 
       'width':$(div.helper).outerWidth()-2, 
       'height':$(div.helper).outerHeight()-2 
      });    
     }, 
     receive: function(event, ui) { 
      var interval = $(event.target).parent('.time-container').attr('interval'); 
      var oldInterval = $(ui.sender).parent('.time-container').attr('interval'); 
      var item = $(ui.item).find('.item').data('objectData'); 
      self.updateInterval(oldInterval, interval, item);   
     } 
    }); 

沒有人有任何見解讓這種行爲的工作?我真的很難過......謝謝。

+0

我不知道這是否是可能的 - 如果你看一下jQuery UI的網站上的這個例子:http://jqueryui.com/demos/可排序/#延遲啓動,它似乎不像你可以拖動滾動區域。 – Ian

+0

好吧,這似乎公平,但爲什麼當我啓用容器上的插件,只設置項目作爲可排序的目標不滾動仍然工作?從我對該插件的理解中,應該... – gabaum10

+0

嗯,所以你的意思是說,當可排序的元素導致容器滾動時你甚至不能滾動?我的意思是,我會認爲通過滾動容器的拖拽會得到支持,但我猜不... – Ian

回答

0

所以,我正在爲所有尋求解決方案的人們回答這個問題。不幸的是,用當前的Jquery UI排序是不可能的。最後,我創建了一個不依賴於列表上的可排序滾動的不同行爲。它基本上涉及對右側每個列表的引用,並將列表中的項目拖動到該列表以更改它們所在的列表。希望能幫助某人。 :/

希望這將是東西儘快添加...