2012-10-03 84 views
4
我在使用jQuery UI的排序問題,我不能再拖累某些項目

時工作(我猜基礎,因爲該項目元素的高度)jQuery UI的排序 - 拖不能正常使用遏制

<div class="container"> 
<fieldset> 
    <legend>handle 1 THIS CAN'T BE DRAGGED BELOW HANDLE 2</legend> 
    <div>blah<br /></div> 
</fieldset> 
<fieldset> 
    <legend>handle 2 BUT I CAN DRAG THIS ABOVE HANDLE 1</legend> 
    <div style="display: none">blah<br /></div> 
</fieldset> 

$(".container").sortable({ 
    axis: 'y', 
    handle: '> legend', 
    containment: 'parent', 
    /*cursorAt: {top: 1}, 
    start: function(event, ui) { 
     ui.placeholder.height(ui.item.height()); 
     $(this).sortable('refreshPositions'); 
    },*/ 
});​ 

看到http://jsfiddle.net/ADyhR/10/ 編輯:這似乎是在jQuery UI的1.8.9工作。它只是1.8.18中的一個錯誤嗎?

註釋掉的javascript行是我試過的東西,但沒有工作,但我想我可能會略微關閉我如何使用它們。

+0

有趣,如果你把底部的一個字段集,拉過頂一個,並把它回來了,回來了,你保證金的底面合一可以拉下面的一個,但鬆開按鈕後,保證金返回到原來的狀態,你不能再次移動到下面。 – vittore

+0

似乎是一個可拖動的bug – vittore

回答

0

您可以使用tolerance選項並將其值設置爲tolerance: "pointer",。我已更新您的DEMO並創建了NEW DEMO

這裏是JS代碼,工程tolerance選項添加

$(".container").sortable({ 
    axis: 'y', 
    tolerance: "pointer", 
    handle: '> legend', 
    containment: 'parent', 
    /*cursorAt: {top: 1}, 
    start: function(event, ui) { 
     ui.placeholder.height(ui.item.height()); 
     $(this).sortable('refreshPositions'); 
    },*/ 
});