Jas*_*ban 41 jquery-ui textselection
不推荐使用JQueryUI 1.9中的.disableSelection.我能找到的唯一解释是字面意思是"禁用文本选择很糟糕.不要使用它." 并且"我们不应该让开发人员搞乱文本选择.这最初是针对交互插件的,但是他们现在都在自己正确地处理文本选择."
由于没有其他建议,我认为它们意味着它总是很糟糕,但我无法理解它们的原因.精心设计的UI应用程序的双击/三击或其他无意义选择不正确地应用文本高亮效果,并且(对我而言)立即消除了强健用户体验的错觉.
桌面应用程序不会受此影响!桌面环境中的按钮和其他控件是像素区域,无论您对它们做什么(或者它们都被破坏),它们看起来都很稳定且行为直观.Web应用程序由复杂的html框,背景,边框和图像(像素的网络模拟)组成的事实没有理由背叛我们与之交互的屏幕元素不是原子物理对象的错觉.
在下图中,可以说某些文本应该是可选择的,例如面板中可能是应用程序数据的文本段落.但对于某些应用程序来说,其他部分(例如按钮,标签,手风琴标题中的文本和模态对话框后面的文本)将无法选择,这将是一种合理的设计选择.这尤其适用于可拖动/可排序的行为.

1)我是否误解了他们的决定?JQuery的推荐是否比我意识到的更具体?
2)如果作为一般性陈述,文本应始终可以这样选择,请提供更全面的解释原因.
3)如果我打算这样做,那么现在不推荐使用disableSelection,那么性能最高,最完整,最尊重,跨浏览器以及普遍可访问的内容是什么?
Shm*_*dty 29
您可以使用CSS在大多数浏览器中实现此目的:http://jsfiddle.net/fQthQ/
* {
-ms-user-select: none; /* IE 10+ */
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
.selectable {
-ms-user-select: auto;
-moz-user-select: auto;
-khtml-user-select: auto;
-webkit-user-select: auto;
user-select: auto;
}
Run Code Online (Sandbox Code Playgroud)
Opera目前不支持此功能.
有关详细信息,请参阅MDN页面:https://developer.mozilla.org/en-US/docs/CSS/user-select
禁用文本选择有用的真实案例是已编程为可拖动(用于排序)的<ul>元素<li>.除了在用户拖动时选择文本外,拖动工作正常.当然这是disableSelection()的合法用法.
我知道可以在没有这种方法的情况下完成(否则该方法首先不可能完成); 但我想使用disableSelection()的原因是简单地在一个地方表达我的愿望并让jQuery-UI处理我的跨浏览器兼容性问题,而不是必须使用几个CSS规则和一些JS(对于IE7)的组合.
我相信这个功能已被弃用,因为有人对禁用选择的网站感到恼火,并认为这不是他们应该鼓励的做法.它类似于网络程序员拒绝支持流行的旧版浏览器,因为他们不想鼓励使用它们.这样的程序员会被解雇,但是当你拥有一个受欢迎的图书馆的权力时,你可以将你的哲学强加给别人.弃用此功能会使想要禁用选择的程序员浪费时间寻找替代方法.通过惩罚恶人,jQuery-UI可能会让他们改变自己的方式,我们的社会也不会被禁用选择的网站所淹没.所以你看,有一个非常好的合理化,谁写了"禁用文本选择是坏的.不要使用它." 在官方文件中可以将自己视为英雄.我们这里是坏人.
| 归档时间: |
|
| 查看次数: |
14914 次 |
| 最近记录: |