【问题标题】:Cancel mousedown event if scrollbar was clicked?如果单击滚动条,取消 mousedown 事件?
【发布时间】:2013-07-14 14:28:51
【问题描述】:

我有一个包含很多 li 元素的无序列表。在列表中单击(mousedown 事件)时,我使用 event.target 来确定是否单击了 li。如果目标元素是ul,我取消选择所有li元素。

但是,当单击滚动条时,也会触发 mousedown 事件,并且目标元素是 ul。但我不想通过单击滚动条来取消选择任何内容。那么如何确定滚动条是否被点击以便取消事件呢?

谢谢

【问题讨论】:

  • 你不能。您只能检测您单击的 px,并将其与文档宽度与文档宽度进行比较。窗口。
  • 哦,在这种情况下我将不得不提出一个解决方案 - 也许我会要求 w3c 将其添加到规范中;)
  • 可以的..看我的回答

标签: javascript jquery events scrollbar target


【解决方案1】:

您可以通过创建具有相同高度和宽度 +30px(滚动条)的包装 div,它具有溢出属性。这样当新div的滚动条被点击时不会触发UL的点击。

【讨论】:

  • 我明白你的意思,但是使用 offsetX 和 clientX 等检测 mousedown 事件是否发生在距离末端不到 30px 的地方同样容易。
  • 可能是这样,但我的解决方案更简洁,这里不需要一段客户端脚本。对于需要调整代码的其他开发人员来说,这个解决方案更可持续,也更容易理解
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 2023-01-06
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多