【发布时间】:2012-12-07 05:10:21
【问题描述】:
.disableSelection 在 JQueryUI 1.9 中已弃用。从字面上看,我能找到的唯一解释是"Disabling text selection is bad. Don't use this." 和"We shouldn't allow developers to mess with text selection. This was originally for the interaction plugins, but they're all handling text selection properly on their own at this point."
由于没有建议的替代方案,我认为他们的意思是总是不好,但我无法理解他们的原因。双击/三次单击或其他无意义的选择精致的 UI 应用程序会不正确地应用文本突出显示效果,并且(对我而言)立即消除了强大用户体验的错觉。
桌面应用程序不会受此影响!桌面环境中的按钮和其他控件是像素区域,无论您对它们做什么(或者它们已损坏),它们看起来都是实心的并且可以直观地操作。 Web 应用程序由复杂的 html 框、背景、边框和图像(像素的 Web 模拟)组成的事实没有理由背叛我们与之交互的屏幕元素不是原子的物理对象的错觉。
在下图中,可以说某些文本应该是可选择的,例如面板中可能是应用程序数据的文本段落。但是对于某些应用程序来说,其他部分(例如按钮、选项卡、折叠式标题和模式对话框后面的文本)中的文本将是一个合理的设计选择。这尤其适用于可拖动/可排序的行为。
1) 我是否误解了他们的决定?建议是否比我意识到的更具体到 JQuery?
2) 如果作为一般性声明,文本应该始终可以像这样选择,请提供更完整的解释说明。
3) 如果我还是要这样做,那么在 disableSelection 已被弃用的情况下,什么是最高效、最完整、最受尊重、跨浏览器且普遍可访问的?
【问题讨论】:
-
我不同意双击/三次单击选择不是用户想要的假设。事实上,我几乎总是选择这种方式!此外,您可以阻止用户选择不应选择的 UI 元素。请参阅
user-select属性。 -
我同意它有时是预期的操作,但作为应用程序设计人员,我觉得当我认为文本选择不是一个重要功能并且它可能会干扰时,我应该能够禁止它其他优先级更高的操作。
-
您应该考虑将该行为留给系统,以便您的应用程序按预期执行。这就是我不搞乱这样的事情的理由。我确定还有其他人。
-
LOL 它实际上在文档页面上说“禁用文本选择很糟糕。不要使用它。”...多么傲慢和无益。有时我认为我们忘记了并非每个 HTML 页面本身都是“网站”,有些是“应用程序”或“工具”,在这些页面中执行诸如禁用文本选择之类的操作是有意义的。我认为 jQuery 团队会充分意识到这一点。
-
我也想知道:为什么不推荐使用这个函数,然后在一些官方的 jQuery UI 示例中列出它? (例如:jqueryui.com/draggable/#sortable)。就个人而言,我认为这应该留给用户,而不是 jQuery UI 团队。这就像说一把刀可以不恰当地使用,所以我们将停止生产它。我本可以在我的一个应用程序中真正使用此功能,而不是弄乱大量 CSS 代码并尝试如何将其实现到我的复杂脚本中,但直到我发现它可拖动时我才知道它存在。