处理按钮双击时的默认行为

问题描述 投票:0回答:2

我在跨度中添加了mouseup事件侦听器,该跨度将通过js输入的同级文本中的值增加...想一想允许用户单击增加或减小值的箭头控件。问题:如果用户单击跨度过快,Safari / Chrome会将其解释为双击,然后开始选择附近的项目并将其呈现在蓝色框下。这些浏览器中必须有一个默认行为,当您双击时,该行为会自动选择附近的文本作为一种便利功能。

我尝试添加dblclick事件以捕获该事件并运行preventDefault()stopPropagation()或返回false。但是,没有任何效果。我还向附近的项目添加了-user-select: none; CSS规则。但是,浏览器只是跳过这些内容,而是找到其他要突出显示的内容。关于如何防止这种行为有什么想法?

html css google-chrome safari dom-events
2个回答
1
投票
编辑:此外,请尝试在短时间内而不是立即调用焦点。

下面列出了一种替代方法:

<script type="text/javascript"> function test() { // something } </script> <style type="text/css"> span::selection, span *::selection { background: transparent; } span { -moz-user-select: none; -khtml-user-select: none; } </style> <span>surrounding text <a href="#" onclick="test(); return false;">Link</a> more text</span>

双击超级链接不会导致选择周围的文本。另外,请参阅以下有关删除选择的js函数的问题:

Prevent text selection after double click

0
投票
我在这里发布了JSFiddle。

http://jsfiddle.net/vince/Ts85n/

© www.soinside.com 2019 - 2024. All rights reserved.