jquery-ui – 为什么.disableSelection()已弃用?

前端之家收集整理的这篇文章主要介绍了jquery-ui – 为什么.disableSelection()已弃用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
.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框,背景,边框和图像(像素的网络模拟)组成的事实不是背叛我们与之交互的屏幕元素不是原子,物理对象的错觉的理由。

在下面的图片中,可以说一些文本应该是可选择的,例如可以是应用程序数据的面板内的文本段落。但对于某些应用程序而言,其他部分(例如按钮,选项卡,折叠标题和模态对话框后面的文本)将不可选择,这是一个合理的设计选择。这尤其适用于可拖动/可排序的行为。

1)我误解他们的决定吗?是比JQuery更具体的建议比我意识到吗?

2)如果它是一个一般的声明,文本应该总是这样选择,请提供更完整的解释为什么。

3)如果我打算做它,什么是最高效,完整,尊重,跨浏览器和普遍可访问的现在,disableSelection被弃用?

解决方法

您可以使用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;
}

Opera目前不支持功能

有关详细信息,请参阅MDN页面https://developer.mozilla.org/en-US/docs/CSS/user-select

猜你在找的jQuery相关文章