Имеет ли jQuery или jQuery-UI какие-либо функции для отключения выделения текста для заданных элементов документа?
javascript
jquery
jquery-ui
Давид Охия
источник
источник
Ответы:
В jQuery 1.8 это можно сделать следующим образом:
источник
Если вы используете jQuery UI, для этого есть метод, но он может обрабатывать только выбор мыши (т. Е. CTRL+ Все Aеще работает):
Код очень прост, если вы не хотите использовать jQuery UI:
источник
Я нашел этот ответ ( Prevent Highlight of Text Table ) наиболее полезным, и, возможно, его можно объединить с другим способом обеспечения совместимости с IE.
источник
Вот более полное решение для выбора отключения и отмены некоторых из горячих клавиш (таких как Ctrl+ aи Ctrl+ c. Тест: Cmd + aи Cmd+ c)
и назовите пример:
jsfiddle.net/JBxnQ/
Этого также может быть недостаточно для старых версий Firefox (я не могу сказать, какие именно). Если все это не работает, добавьте следующее:
источник
attr('unselectable', 'on')
дважды? Это опечатка или она полезна?Следующее действие отключило бы выбор всех элементов item во всех распространенных браузерах (IE, Chrome, Mozilla, Opera и Safari):
источник
источник
Это легко сделать с помощью JavaScript. Это применимо ко всем браузерам.
Вызов этой функции
источник
Это на самом деле очень просто. Чтобы отключить выделение текста (а также нажать + перетаскивание текста (например, ссылку в Chrome)), просто используйте следующий код jQuery:
Все это делает предотвратить дефолт из происходит при нажатии кнопки с помощью мыши (
mousedown()
) вbody
иhtml
тегах. Вы можете очень легко изменить элемент , просто изменив текст в промежутке между двумя кавычками (например , изменения$('body, html')
в$('#myUnselectableDiv')
сделатьmyUnselectableDiv
ДИВ быть, ну, неактивна.Небольшой фрагмент, чтобы показать / доказать это вам:
Обратите внимание, что этот эффект не идеален и работает лучше всего, в то время как все окно недоступно для выбора. Вы также можете добавить
также, используя этот раздел ответа Владимира выше. (зайдите на его пост здесь )
источник
1 линия решение для ХРОМА:
и FF:
IE требует установки атрибута unselectable (подробности внизу).
Я проверил это в Chrome, и он работает. Это свойство наследуется, поэтому установка его в элементе body отключит выделение во всем документе.
Подробности здесь: http://help.dottoro.com/ljrlukea.php
Если вы используете Closure, просто вызовите эту функцию:
Он обрабатывает все браузеры прозрачно.
Браузеры без IE обрабатываются так:
Определено здесь: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
Часть IE обрабатывается так:
источник
Я думаю, что этот код работает во всех браузерах и требует наименьших затрат. Это действительно гибрид всех вышеперечисленных ответов. Дайте мне знать, если найдете ошибку!
Добавить CSS:
Добавить jQuery:
Необязательно: Чтобы отключить выбор для всех дочерних элементов, вы можете изменить блок IE на:
Использование:
источник
Я испробовал все подходы, и этот самый простой для меня, потому что я использую IWebBrowser2 и у меня нет 10 браузеров, с которыми приходится бороться:
У меня отлично работает!
источник
Одним из решений этой проблемы в соответствующих случаях является использование
<button>
текста, который вы не хотите выбирать. Если вы привязываетеclick
событие к какому-либо текстовому блоку и не хотите, чтобы этот текст можно было выбирать, изменение его на кнопку улучшит семантику, а также предотвратит выделение текста.источник
Лучший и самый простой способ, которым я нашел это, предотвращает Ctrl + C, щелчок правой кнопкой мыши. В этом случае я заблокировал все, поэтому мне не нужно ничего указывать.
источник