Draggable div: ведет себя как изображение при втором перетаскивании - PullRequest
1 голос
/ 10 ноября 2011

У меня есть перетаскиваемый div на моей странице. При первом перетаскивании все работает отлично. При втором перетаскивании он начинает работать, но затем div кажется «захваченным», как если бы это было изображение - перетаскивание прекращается, появляется «копия» div и событие mouseup не регистрируется. Идентична этой проблеме, ребята, если я не достаточно ясно: http://www.webdeveloper.com/forum/showthread.php?t=227602

Есть идеи, что может быть причиной и как ее преодолеть?

Спасибо

Редактировать: Хорошо Я нашел ответ, благодаря этому вопросу. Чтобы сэкономить будущим посетителям один клик, в вашей функции dragStart обязательно указывается event.preventDefault():

// bind dragStart handler to appropriate element:
<script type="text/javascript">
  $("#handle").bind("mousedown", function(e) { dragStart(e) });
</script>

function dragStart(event) {

 // bind mousemove and mouseup handlers to $(document), 
 // get ininitial positions etc

 ...

 // then do this:

 event.preventDefault();

}

и эй Престо все хорошо.

1 Ответ

2 голосов
/ 12 ноября 2011

@ RichardH: также учтите следующее в CSS:

#handle {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

Это отключит случайный выбор элемента при перетаскивании.

...