Показать сообщение отдельно
  #1 (permalink)  
Старый 18.09.2014, 10:49
Интересующийся
Отправить личное сообщение для FactoREAL Посмотреть профиль Найти все сообщения от FactoREAL
 
Регистрация: 09.04.2014
Сообщений: 14

DragAndDrop и Mouseleave
Ребята, помогите найти ошибку. Ситуация такая: у меня есть некий список, элементы которого я хочу сделать перетаскиваемыми.

на данной картинке светло серые строки с кабинетами я хочу перетаскивать, но делать я это хочу только "за точки", расположенные слева в каждой строке. Изначально строки имеют атрибут draggable=false. У меня есть такой код, который при нажатии на "точки" делает у строк draggable=true.
dots[0].addEventListener("mousedown", function(e){
	e.target.parentNode.draggable = true;
}, false);
dots[0].addEventListener("mouseleave", function(e){
	e.target.parentNode.draggable = false;
}, false);

затем уже срабатывают события перетаскивания, но это не суть. Проблема в том, что когда я начинаю "тащить" за точки, строка становится draggable, но как только курсор выходит за точки, срабатывает mouseleave, и draggable становится равный false (т.е. я начинаю тащить строку, и она сразу же становится не перетаскиваемой)... Такая ситуация происходит только в Firefox, в хроме все это работает как нужно, тоесть mouseleave срабатывает только тогда, когда я отжимаю левую кнопку мышки, и не важно как далеко она находится от объекта с точками. Скажу даже больше, когда я тестировал DragAndDrop в отдельном проекте у меня всё это работало во всех браузерах, а когда я прикручиваю его к рабочему проекту возникает такая ситуация. В рабочем проекте перетаскиваемые строки создаются динамически, на них навешаны другие события (например mouseclick) и т.д. вообщем просто что-то конфликтует с моим DragAndDrop. Поэтому прошу подсказать, где я мог ошибиться.

Последний раз редактировалось FactoREAL, 18.09.2014 в 10:53.
Ответить с цитированием