Я создаю меню в HTML/CSS/JS, и мне нужен способ предотвратить текст в меню от того, чтобы быть выделенным когда дважды щелкнувший на. Мне нужен способ передать идентификатор нескольких отделений в функцию и иметь выделение, выключенное в них.
Таким образом, когда пользователь случайно (или нарочно) двойные щелчки по меню, меню показывает свои подэлементы, но его текст не выделяется.
Существует много сценариев, там плавающих вокруг в сети, но многие кажутся устаревшими. Каков лучший способ?
В (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+ */
}
Вы могли использовать этот CSS для простого сокрытия цвета выделения (не поддерживаемый IE):
#id::-moz-selection {
background: transparent;
}
#id::selection {
background: transparent;
}
Вы могли:
Надежда это - то, что Вы ищете.
<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>