Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2014, 12:22
Интересующийся
Отправить личное сообщение для FactoREAL Посмотреть профиль Найти все сообщения от FactoREAL
 
Регистрация: 09.04.2014
Сообщений: 14

ну как всегда - 2 дня мучался, ломал мозг, ничего не мог сделать. Стоило написать на форум - разобрался сам. В общем, если кому-то пригодится, то проблема была в отсутствии
e.dataTransfer.setData(...)

в обработчике события "dragstart"... понятия не имею почему, но если не присвоить какие-то данные, то в firefox Drag and Drop нихрена не работает как надо. В тоже время в других браузерах все работает корректно и без этой строки.

P.S. С каждым днем firefox разочаровывает меня всё больше и больше, сижу на нем наверное только из за привычки к firebug... браузер стал абсолютно не пригоден для разработки. Да и для повседневного пользования тоже, после 30 версии даже IE кажется менее глючным и тормозным...
Ответить с цитированием
  #3 (permalink)  
Старый 18.09.2014, 22:34
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Я даже не знаю что такое firebug, а ФФ меня тоже разочаровывает все больше, даже больше чем Хром, не говоря про Ие-ие.

У FF отродясь была высокая толерастия к косякам в скриптах. Пока у меня Ишака еще фурычил я в нем все проверял. Теперь проверяю в Хроме. Потому что ФФ кладет на многое.

Вспомнил. Как-то нарисовал обхект на пару тыщ строк и внезапно полез проверять в Хроме. И там мне сказали что вот так (как в php например)

my_func:function(param=null) {

делать нельзя. А в ФФ все прекрасно инициализировалось как изображено. Пришлось все эти фичи искать и переписывать на кошерный лад.

Последний раз редактировалось kostyanet, 18.09.2014 в 22:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mouseleave ошибки imediasun1 Элементы интерфейса 1 30.09.2013 18:55
dragleave работает как mouseout, а не mouseleave? danik.js Events/DOM/Window 17 17.09.2013 17:17
mouseleave in IE, pageY = -1 kalya Events/DOM/Window 8 11.05.2012 12:34
Рекомендации по mouseover и mouseleave vyshik Events/DOM/Window 0 19.03.2012 16:31
DragAndDrop у гридов в плавающих окнах странное поведение PavelK ExtJS 0 29.07.2010 15:26