Отключить перетаскивание элементов HTML?
Я работаю над веб-приложением, для которого я пытаюсь реализовать полнофункциональную оконную систему. Сейчас все идет очень хорошо, я столкнулся только с одной незначительной проблемой. Иногда, когда я иду, чтобы перетащить часть моего приложения (чаще всего угловой div моего окна, который должен вызвать операцию изменения размера) веб-браузер становится умным и думает, что я хочу перетащить что-то. Конечный результат, мое действие помещается на удержание, пока браузер выполняет его перетаскивание вещь.
есть ли простой способ отключить перетаскивание браузера? В идеале я хотел бы иметь возможность отключить его, когда пользователь нажимает на определенные элементы, но повторно включить его, чтобы пользователи могли по-прежнему использовать нормальную функциональность своего браузера на содержимом моих окон. Я использую jQuery, и хотя я не смог найти его, просматривая документы, если вы знаете чистое решение jQuery, это было бы отлично.
Короче: мне нужно отключить выделение текста в браузере и функции перетаскивания, когда у моего пользователя есть кнопка мыши, и восстановите эту функцию, когда пользователь отпустит мышь.
Спасибо за любой совет, я искал некоторое время на этом без везения.
7 ответов:
попробуйте предотвратить по умолчанию на mousedown событие:
<div onmousedown="event.preventDefault ? event.preventDefault() : event.returnValue = false">asd</div>или
<div onmousedown="return false">asd</div>
эта штука работает.....Попробовать его.
<BODY ondragstart="return false;" ondrop="return false;">надеюсь, что это помогает. Спасибо
Это может сработать: вы можете отключить выбор с помощью css3 для текста, изображения и в основном всего.
.unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; /* Introduced in IE 10. See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/ */ -ms-user-select: none; user-select: none; }конечно только для новых браузеров. Для получения более подробной информации проверьте:
вы можете отключить перетаскивание с помощью
draggable="false"атрибут.
http://www.w3schools.com/tags/att_global_draggable.asp
С помощью jQuery это будет что-то вроде этого:
$(document).ready(function() { $('#yourDiv').on('mousedown', function(e) { e.preventDefault(); }); });в моем случае я хотел отключить пользователя от выпадающего текста во входных данных, поэтому я использовал " drop "вместо"mousedown".
$(document).ready(function() { $('input').on('drop', function(event) { event.preventDefault(); }); });вместо события.метод preventDefault() вы можете вернуть false. вот в чем разница.
и код:
$(document).ready(function() { $('input').on('drop', function() { return false; }); });
этот JQuery работал для меня : -
$(document).ready(function() { $('#con_image').on('mousedown', function(e) { e.preventDefault(); }); });
Comments