0

JQuery で行をドラッグ可能にしたいテーブルがあります (ユーザーは行を選択し、その行のデータをその要素にドロップする UI 上の別の要素に行をドラッグできます)。テーブルの各行 ("tr" 要素) をクラス "draggableRow" に設定し、そのクラスの要素に対してすべてが機能するように適切な機能を作成しました (たとえば、そのクラスにドラッグ可能な関数を設定します)。

ただし、ユーザーが最初の列 (つまり、行の最初の "td") からドラッグできるようにしたくありません。1 つのオプションは、「td」要素をドラッグ可能にすることですが、パディングの問題により、これは鮮明に感じられません。表の行には、ドラッグできないデッド ゾーンがあります。

したがって、別の方法としては、"tr" にドラッグ可能を保持し、ユーザーが行の最初の "td" をクリックしたことを何らかの方法で把握することです (たとえば、$(event.target).closest("td") によってヘルパー関数)、ドラッグを停止します。ただし、ドラッグを停止する方法がわかりません。

どんな助けでも大歓迎です。最善の方法は、最初の「td」以外の行全体をドラッグ可能にする方法を見つけることです (表のセル間のパディングを含む)。ありがとう。

4

1 に答える 1

1

「キャンセル」オプションは、あなたが探しているもののようです: http://api.jqueryui.com/draggable/#option-cancel

指定された要素でドラッグが開始されないようにします。

  $('tr').draggable({
        helper: 'clone',
        cancel: 'td:first-child'
    });

編集: jsfiddle の例を作成しました: http://jsfiddle.net/Emsxg/1/

于 2013-01-24T17:08:42.137 に答える