Отключить перетаскивание элементов HTML?



Я работаю над веб-приложением, для которого я пытаюсь реализовать полнофункциональную оконную систему. Сейчас все идет очень хорошо, я столкнулся только с одной незначительной проблемой. Иногда, когда я иду, чтобы перетащить часть моего приложения (чаще всего угловой div моего окна, который должен вызвать операцию изменения размера) веб-браузер становится умным и думает, что я хочу перетащить что-то. Конечный результат, мое действие помещается на удержание, пока браузер выполняет его перетаскивание вещь.



есть ли простой способ отключить перетаскивание браузера? В идеале я хотел бы иметь возможность отключить его, когда пользователь нажимает на определенные элементы, но повторно включить его, чтобы пользователи могли по-прежнему использовать нормальную функциональность своего браузера на содержимом моих окон. Я использую jQuery, и хотя я не смог найти его, просматривая документы, если вы знаете чистое решение jQuery, это было бы отлично.



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



Спасибо за любой совет, я искал некоторое время на этом без везения.

608   7  

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;
}

конечно только для новых браузеров. Для получения более подробной информации проверьте:

как отключить выделение текста с помощью CSS?

вы можете отключить перетаскивание с помощью 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;
  });
});

попробуй такое

$('#id').on('mousedown', function(event){
    event.preventDefault();
}

этот JQuery работал для меня : -

$(document).ready(function() {
  $('#con_image').on('mousedown', function(e) {
      e.preventDefault();
  });
});

Comments

    Ничего не найдено.