Я работаю над веб-приложением, для которого пытаюсь реализовать полнофункциональную оконную систему. Сейчас все идет очень хорошо, я столкнулся только с одной незначительной проблемой. Иногда, когда я перетаскиваю часть своего приложения (чаще всего угловой div моего окна, который должен запускать операцию изменения размера), веб-браузер становится умным и думает, что я хочу что-то перетащить. Конечный результат, мое действие приостанавливается, пока браузер выполняет перетаскивание.
Есть ли простой способ отключить перетаскивание в браузере? В идеале я хотел бы иметь возможность выключать его, пока пользователь нажимает на определенные элементы, но снова включить его, чтобы пользователи могли использовать обычные функции своего браузера для содержимого моих окон. Я использую jQuery, и хотя я не смог найти его при просмотре документации, если вы знаете чистое решение jQuery, это было бы отлично.
Вкратце: мне нужно отключить выделение текста в браузере и функции перетаскивания, когда у моего пользователя кнопка мыши нажата, и восстановить эту функциональность, когда пользователь отпустит мышь.
источник
Ответы:
Попробуйте предотвратить дефолт по событию mousedown:
или
источник
:active
псевдокласса к элементу. Это означает, что я не могу использовать его для своих ссылок.Эта штука работает ..... Попробуй.
Надеюсь, поможет. Спасибо
источник
<div>
элемент.)copy paste
слушателем кажется идеальным решением, чтобы заставить пользователя вводить ввод, а не вставлять / перетаскивать что-то, не влияя отрицательно на другие части страницы.Вы можете отключить перетаскивание, просто используя
draggable="false"
атрибут.http://www.w3schools.com/tags/att_global_draggable.asp
источник
Это может сработать: вы можете отключить выбор с помощью css3 для текста, изображения и всего остального.
Конечно, только для новых браузеров. Для более подробной информации проверьте:
Как отключить выделение выделения текста с помощью CSS?
источник
div
, но с отключенным перетаскиванием.С jQuery это будет примерно так:
В моем случае я хотел запретить пользователю перетаскивать текст во входных данных, поэтому я использовал «drop» вместо «mousedown».
Вместо event.preventDefault () вы можете вернуть false. Вот в чем разница.
И код:
источник
Я всегда использую эту скрипку для своих веб-приложений:
Это предотвратит перетаскивание чего-либо в вашем приложении. В зависимости от потребностей тура вы можете заменить селектор тела любым контейнером, который не следует перетаскивать детям.
источник
попробуй это
источник
Для
input
элементов этот ответ работает для меня.Я реализовал его в пользовательском компоненте ввода в Angular 4, но я думаю, что это можно реализовать с помощью чистого JS.
HTML
Определение компонента (JS):
источник
используя ответ @ SyntaxError, https://stackoverflow.com/a/13745199/5134043
Мне удалось это сделать в React; единственный способ, которым я мог это понять, - это привязать методы ondragstart и ondrop к ссылке, например:
источник
Я просто оставлю это здесь. Помогло после того, как все перепробовал.
источник
Этот JQuery работал для меня: -
источник