gpt4 book ai didi

javascript - 如何防止双击使用 JavaScript 突出显示网页文本?

转载 作者:行者123 更新时间:2023-11-29 09:56:44 27 4
gpt4 key购买 nike

在我的 HTML 页面上有一个带有一些文本的元素。我指定了一个在单击该元素时发生的操作。当用户连续多次点击该元素时,有时会出现双击,导致文本被选中(高亮),从而破坏外观。我试图使用一个虚拟事件处理程序来阻止它,该处理程序可以防止双击 (dblclick) 事件的默认行为。但是,这似乎不起作用。似乎在我的虚拟事件处理程序执行之前就选择并突出显示了文本。

function doNothing(event) {
alert('doNothing'); // Added for debugging. The alert is shown, meaning the event handler is invoked. When I get the alert, the text is already highlighted.
if(!event) event = window.event;
if(event.preventDefault) event.preventDefault();
event.cancelBubble = true;
if(event.stopPropagation) event.stopPropagation();
return false;
}

myElem.onlick = doSomething; // This is the event for a single click. Works well.
myElem.ondblclick = doNothing; // The event handler is called, but the text is already highlighted.

具体问题:

1) 我所追求的与双击事件有任何关系吗? (正如我所见,当警报被触发时文本已经突出显示,我怀疑这可能是另一种机制。我怀疑(单次)点击事件的默认行为可能与它有关,但我取消了默认行为(单次)点击事件。)

2) 如果它与 dblclick 事件无关,那么它与什么有关?我该如何预防?

3) 如果是关于 dblclick 事件,我是不是做错了什么? (顺便说一句,我想使用所有的 preventDefault()cancelBubble = truestopPropagation()return false太过分了。为了防止默认行为,我需要的最少代码是多少?)

4) 还有其他关于如何获得预期结果的想法(双击而不是选择和突出显示文本)吗?

我正在使用 FF 11 进行测试(但最终需要一个跨浏览器的解决方案)。

谢谢!

最佳答案

myElem.onmousedown = function(e) {
e.preventDefault()
}

编辑:将其从 return fasle 更改为 e.preventDefault,这仍将允许触发点击事件。

关于javascript - 如何防止双击使用 JavaScript 突出显示网页文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342965/

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