当我的用户按下自定义下拉列表时,我正在停止mousedown
事件。这是为了避免在用户有效拖动鼠标时浏览器的默认文本突出显示行为。
我在处理程序函数中使用jQuery event.preventDefault()
调用并返回false。
这具有所需的效果,但在Chrome中它还可以防止CSS :hover
状态在鼠标仍然按下时工作。
Firefox没有遇到同样的问题。文本突出显示被取消,并且:悬停状态继续有效,因为用户仍然按下鼠标滚动项目。
是否有一种方法可以在Chrome中使用?
我可以添加更多mouseover
处理程序来添加自定义类,但我更喜欢更优雅的解决方案,所以我可以在CSS中使用:hover伪类。
答案 0 :(得分:0)
为了防止突出显示文本,有一个CSS3属性。 我在SO问题中找到了这个信息。“Prevent Highlight of Text Table”
编辑:我认为这个“How to disable text selection highlighting using CSS?”更好,因为有更多浏览器覆盖,从而使其更具跨浏览性。
答案 1 :(得分:0)
您可以将CSS定义为 :hover,.hover {...} 然后只需在鼠标悬停时切换班级
答案 2 :(得分:0)
在文档mousedown上,只需将此类添加到正文:
.stopSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
这将阻止文本选择。 在mouseup上删除该类。