参考:
带有插件的 jsFiddle 演示
我制作的上述 jsFiddle Demo 使用插件来允许您防止在Android或iOS设备(以及桌面浏览器)中选择任何文本块。
它很容易使用,这里是安装 jQuery 插件后的示例标记。
示例 HTML:
<p class="notSelectable">This text is not selectable</p>
<p> This text is selectable</p>
示例 jQuery:
$(document).ready(function(){
$('.notSelectable').disableSelection();
});
插件代码:
$.fn.extend({
disableSelection: function() {
this.each(function() {
this.onselectstart = function() {
return false;
};
this.unselectable = "on";
$(this).css('-moz-user-select', 'none');
$(this).css('-webkit-user-select', 'none');
});
return this;
}
});
根据您的留言评论: I still need to be able to trigger events (notably, touchstart, touchmove, and touchend) on the elements.
我会简单地使用不受此插件影响的包装器,但使用此插件保护它的文本内容。
要允许与文本块中的链接进行交互,您可以使用除链接之外的所有链接并仅为那些span tags
添加类名,从而保留锚链接的选择和交互。.notSelected
span tags
状态更新:这个更新的 jsFiddle确认您担心禁用文本选择时其他功能可能无法工作。在这个更新的 jsFiddle 中显示的是 jQuery Click 事件侦听器,它将在单击粗体文本时触发浏览器警报,即使该粗体文本不是文本可选择的。