私のサイトには、ユーザーがアイテムをドラッグまたはクリックして選択できるスライダーがあります。ドラッグすると、親の垂直方向の中心に最も近い項目が選択されます。
CodePen デモ
問題は、jQuery UI のドラッグ可能オプション (カスタム バインディングで実装) の前に Knockout クリック バインディングがバインドされていることです。
再現するには、一番下の数字をクリックしてドラッグし、少し上に移動します (ただし、中央ではありません)。最初のドラッグで正しく機能するように見えるので、それを数回試してみてください...時々。
バインディングは基本的に を呼び出し.draggable
、ドラッグが停止するとオブザーバブルを更新します。
HTMLはこのように設定されています。
<ul data-bind="slideSelect: thing, foreach: nums">
<li data-bind="click: $root.thing.set($data), text: $data">1</li>
</ul>
li
ドラッグ可能な要素でs クリック イベントの発生を停止させる方法はありますか? 出来るだけクリーンな方法で行いたいと思っています。