gpt4 book ai didi

javascript - knockout 单击绑定(bind)(拖动时除外)

转载 作者:行者123 更新时间:2023-11-28 09:02:00 26 4
gpt4 key购买 nike

我的网站上有 slider ,允许用户通过拖动或单击项目来选择。当它们拖动时,最接近父级垂直中心的项目将被选中。

CodePen Demo

问题在于 Knockout 单击绑定(bind)是在 jQuery UI 可拖动选项(在自定义绑定(bind)中实现)之前绑定(bind)的。

要重现,请尝试单击并拖动底部的数字,然后将其向上移动一点(但不要在中心)。尝试这样做几次,因为它似乎在第一次拖动时可以正常工作......有时。

绑定(bind)基本上调用.draggable,并在拖动停止时更新可观察对象。

HTML 的设置如下。

<ul data-bind="slideSelect: thing, foreach: nums">
<li data-bind="click: $root.thing.set($data), text: $data">1</li>
</ul>

有什么方法可以让可拖动元素阻止 li 的点击事件触发吗?我想以尽可能最干净的方式做到这一点。

最佳答案

您是否尝试过 event.preventDefault();在拖动事件处理程序中?这个想法是,如果您检测到拖动事件,则停止事件冒泡。如果单击发生在拖动之前,那么我认为您可能需要等待查看是否发生拖动,然后完成操作。

关于javascript - knockout 单击绑定(bind)(拖动时除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com