4

特定のアイテムをドラッグできないjqueryuisortableに問題があります(アイテム要素の高さのために推測されます)

<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/を参照してください 。編集:jqueryui1.8.9で機能するようです。1.8.18の単なるバグですか?

コメントアウトされたjavascript行は、私が試したが機能しなかったものですが、使用方法が少しずれている可能性があると思いました。

4

1 に答える 1

0

オプションを使用して、toleranceその値を に設定できますtolerance: "pointer",。DEMO を更新し、新しい DEMOを作成しました。

オプションを追加して動作するtoleranceJSコードは次のとおりです。

$(".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');
    },*/
});
于 2018-01-05T07:57:15.617 に答える