удалить выделение с помощью JavaScript - PullRequest
4 голосов
/ 19 апреля 2009

Я работаю над средством просмотра изображений с перетаскиваемой полосой прокрутки. Когда пользователь перетаскивает полосу прокрутки, часть текста на веб-странице становится выделенной. Я пробовал

window.getSelection().removeAllRanges();

но это не работает в IE7 / 8. Также попробовал

document.getSelection().removeAllRanges();

, который, кажется, работает так же "хорошо" с IE7 / 8.

Есть ли другие способы сделать это? Не знаю ни одного решения jQuery, но если есть, дайте мне знать (:

РЕДАКТИРОВАТЬ: Это контекст события onmouse

$("#slideBar").mousedown(function(f) {
    mouseDown = true;
    some more code...
}

$(document).mouseup(function() {
    if (mouseDown) {
       window.getSelection().removeAllRanges();
       more code...
    }
}

Ответы [ 2 ]

6 голосов
/ 19 апреля 2009

Попробуйте вернуть false для используемых вами функций, особенно для события "mousedown". Также может помочь возврат false в document.onselectstart и document.ondragstart.

4 голосов
/ 19 апреля 2009

Вы можете добавить немного CSS (с jquery), чтобы справиться с этим:

element {
  -moz-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

В любом случае, для IE вам нужно добавить собственный атрибут (с jquery) для этого элемента:

unselectable="on"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...