我的网站上有滑块,允许用户通过拖动或单击项目进行选择。当他们拖动时,选择最接近父项垂直中心的项目。
CodePen 演示
问题是 Knockout 单击绑定在 jQuery UI 可拖动选项之前绑定(在自定义绑定中实现)。
要重现,请尝试单击并拖动底部的数字,然后将其向上移动一点(但不在中心)。尝试这样做几次,因为它似乎在第一次拖动时可以正常工作......有时。
绑定基本上调用.draggable
, 并在拖动停止时更新一个 observable。
HTML 是这样设置的。
<ul data-bind="slideSelect: thing, foreach: nums">
<li data-bind="click: $root.thing.set($data), text: $data">1</li>
</ul>
有什么方法可以使可拖动元素停止li
触发点击事件?我想以最干净的方式做到这一点。