參考:
jsFiddle Demo with Plugin
上面的jsfiddle演示我提出使用插件以允許您防止任何文本塊被選中在的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 Event偵聽器,它將在單擊粗體文本時觸發瀏覽器警報,即使粗體文本不是文本可選。
嗯。小提琴似乎工作時,我只是在我的手機上測試它,但我不是100%肯定它會在我的生產工作 - 我仍然需要能夠觸發事件(特別是,'touchstart','touchmove',和'touchend')的元素。雖然,考慮到這只是在'selectstart'上採取行動,我們可能會很好。 我會在今晚測試一下,回到你的身邊:) –