Создание элемента невыбираемым с помощью jQuery - PullRequest
4 голосов
/ 30 апреля 2010

Какой лучший способ сделать элемент невыбираемым с помощью jQuery?

Я знаю, что вы можете использовать onselectstart="return false;" ondragstart="return false;" в HTML, но я не уверен, насколько это совместимо с различными браузерами.

Я также вижу, что кто-то создал плагин jQuery: http://plugins.jquery.com/project/Unselectable ... нужен ли такой плагин?

Существует ли простой, совместимый способ сделать элемент невыбираемым?

Причина желания сделать это чисто эстетическая. С веб-страницами, на которых есть события перетаскивания или нажатия, не очень хорошо, когда что-то выбирается.

Ответы [ 4 ]

5 голосов
/ 30 апреля 2010

$('.noselect').live('selectstart dragstart', function(evt){ evt.preventDefault(); return false; });

Просто привяжите событие к прямой трансляции и верните false или запретите использование по умолчанию.

1 голос
/ 30 апреля 2010

Я думаю, что jQuery будет абстрагировать дисперсию браузера и поэтому поможет вам сделать HTML-элементы невыбираемыми.

Сказав это, обратите внимание, что клиент может решить отключить JavaScript, и в этом случае вам необходимо убедиться, что он все еще не может сделать что-либо, что может причинить вред ...

НТН.

0 голосов
/ 23 июля 2013

Если вы используете JqueryUI , вы можете установить class="ui-state-default" для div, который вы не хотите выбирать.

<div class="ui-state-default"></div>
0 голосов
/ 19 апреля 2013

Я считаю, что это лучший ответ.

$('*[data-noselect="true"]').focus(
    function () {
        $(this).blur();
    });

$('*[data-noselect="true"] *').focus(
    function () {
        $(this).blur();
    });

Тогда вы можете просто добавить data-noselect="true" к любому элементу.

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