マウスドラッグイベントの複数選択オプションを無効にしたいのですが、ユーザーはコントロールキーを押しながら複数を1つずつ選択できます。問題は、selectイベントでajaxサービス呼び出しを送信していることです。かなりの数の大きなオプションを選択すると、一部がスキップされます。デバッグモードでは、ブレークポイントで各呼び出しを送信させると正常に実行されます。
1 に答える
私がこれまでに見つけた唯一の方法は、コードをハックすることです! 現在のソース コードはこちら: https://github.com/jquery/jquery-ui/blob/master/ui/selectable.js
_mouseDrag
基本的に完全に取り除く必要がありますが_mouseStart
、 と_mouseStop
. 特別なオプションを追加する方が侵襲的ではありません。フラグが設定されている場合は、の一番上に戻ります_mouseDrag
。
ところで、私の使用例はあなたの使用例よりも単純です。複数選択へのドラッグは必要ないだけでなく、実際には邪魔になります。「邪魔になる」とは、Ctrl キーを押しながらクリックしてアイテムを選択し、Ctrl キーを押しながらクリックして選択を解除すると機能することを意味します。ただし、Ctrl キーを押しながらクリックして選択を解除している間にマウスを (ほんの少しだけ) ドラッグすると、mouseDrag イベントが引き継がれるため、ctrl ボタンは無視され、再度選択されます (つまり、選択解除は失敗します)。それは技術者の説明です。ユーザーが言うことは次のとおりです。Ctrlキーを押しながらクリックして選択を解除しても機能しないことがあります。