Что лучший способ состоит в том, чтобы предотвратить выделение текста при нажатии на его содержание отделения в JavaScript?

Я создаю меню в HTML/CSS/JS, и мне нужен способ предотвратить текст в меню от того, чтобы быть выделенным когда дважды щелкнувший на. Мне нужен способ передать идентификатор нескольких отделений в функцию и иметь выделение, выключенное в них.

Таким образом, когда пользователь случайно (или нарочно) двойные щелчки по меню, меню показывает свои подэлементы, но его текст не выделяется.

Существует много сценариев, там плавающих вокруг в сети, но многие кажутся устаревшими. Каков лучший способ?

13
задан Christopher Tokar 30 September 2008 в 14:18
поделиться

4 ответа

В (Mozilla, Firefox, Камино, Safari, Google Chrome) можно использовать это:

div.noSelect {
  -moz-user-select: none; /* mozilla browsers */
  -khtml-user-select: none; /* webkit browsers */
}

Для IE нет никакой опции CSS, но можно получить ondragstart событие и возвратить false;

Обновление

Поддержка браузера для этого свойства расширилась с 2008.

div.noSelect {
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all */
  -ms-user-select: none;      /* IE 10+ */
}

https://css-tricks.com/almanac/properties/u/user-select /

23
ответ дан 1 December 2019 в 09:34
поделиться

Вы могли использовать этот CSS для простого сокрытия цвета выделения (не поддерживаемый IE):

#id::-moz-selection {
background: transparent;
} 

#id::selection {
background: transparent;
} 
4
ответ дан 1 December 2019 в 09:34
поделиться

Вы могли:

  • Дают его ("это" являющийся Вашим текстом), onclick событие
  • Сначала нажимает, устанавливает переменную на текущее время
  • 113-секундные проверки щелчка, чтобы видеть, является ли та переменная x временем с текущего, текущего времени (таким образом, законченный двойной щелчок, например, 500 мс, не регистрируется как двойной щелчок)
  • , Если это двойной щелчок, сделайте что-то к странице как добавление скрытого HTML, делая document.focus (). Необходимо будет экспериментировать с ними, поскольку некоторые могли бы вызвать нежелательную прокрутку.
1
ответ дан 1 December 2019 в 09:34
поделиться

Надежда это - то, что Вы ищете.

<script type="text/javascript">
function clearSelection() {
var sel ;
if(document.selection && document.selection.empty){
document.selection.empty() ;
} else if(window.getSelection) {
sel=window.getSelection();
if(sel && sel.removeAllRanges)
sel.removeAllRanges() ;
}
}
</script>

<div ondblclick="clearSelection()">Some text goes here.</div>
0
ответ дан 1 December 2019 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: