2012-12-20 113 views
2

我有兩個包含多個div並可以滾動的div。 我有一個垂直的div,可拖動的包含div。 我的水平div是可排序的,我通過connectToSortable將可拖動的連接到它。jQueryUI可排序和可拖動的目標不會滾動水平滾動,但將排序

水平排序可以在重新排列項目時水平滾動。 但是,如果我從垂直拖動到水平,它不會像我進行純粹排序時那樣滾動水平div。

我已經閱讀了這裏所有的條目,用scrollTo和衍生物等插件滾動div,並且它們對我的特定問題沒有幫助。我正在使用jQuery 1.8.3和jQuery UI 1.9.2

我可以放入視口中,但我希望我的用戶能夠拖動並使水平滾動像剛剛排序時一樣工作。如果我放在可見區域,然後排序它將滾動div。

謝謝!

$(".playboxresults, .playboxrecommended").draggable({ 
     revert: "invalid", 
     opacity: 0.95, 
     containment: 'document', 
     connectToSortable: "#divCurrentList", 
     helper: function() { 
      $copy = $(this).clone(); 
      return $copy; 
     }, 
     appendTo: 'body', 
     scroll: true, 
     start: function (e, ui) { 
      draggedItem = ui.item; 
     } 
    }); 
+0

我們可以看到您的代碼嗎?你使用'appendTo:body'嗎? –

+0

我實際上使用appendTo:body。我用代碼更新了帖子。 – Krafty

+0

re:appendTo:body - 我的目標是一個水平div。這個div具有固定的位置,是液體佈局的一部分,永遠不會低於摺疊。如果我記得添加appendTo之前有大量的問題,所以我99%確定我無法刪除此屬性。 – Krafty

回答

0

這是因爲當你使用append到body時,helper成爲body的一部分,因此不會滾動水平div。

我也被實現該功能,並找到一個解決辦法感謝sdespont

helper: function(){ 
    $('#horizontalDiv').append('<div id="clone">' + $(this).html() + '</div>'); 
    $("#clone").hide(); 
    setTimeout(function(){ 
     $('#clone').appendTo('body'); 
     $("#clone").show(); 
    },1); 
    return $("#clone"); 
}, 

這使得你的水平DIV第一的輔助部分,然後將其追加到身體。

希望這會有所幫助。

您也可以參考this

+0

感謝您取回Mandeep。我將稍後再測試一下,我一定會讓你知道結果。再次感謝。 – Krafty

+0

不好意思回覆遲到。很忙。 –

+0

我試過解決方案。它沒有打破下降的行爲,但它也沒有啓用滾動。我的頁面的代碼很複雜,因此可能會有其他問題阻止在拖動時滾動工作。我通過調整你提出的答案來嘗試我能想到的所有事情,但不幸的是沒有成功。不管怎麼說,還是要謝謝你! – Krafty