Я работаю над веб-приложением, где я поддерживаю медленное движение страницы путем простого наблюдения за mousedown/mousemove/mouseup событиями. Та часть работает отлично.
Проблема состоит в том, что я только обрабатываю перетаскивание в одном конкретном элементе дизайном, и если пользователь (случайно или не) перетаскивает снаружи, это вовлекает в режиме перетаскивания. Таким образом, мышь вниз, затем листовое окно мыши, затем мышь, затем возвраты мыши к окну похожи, это все еще перетаскивает к моему приложению.
Я не выяснил способа решить это - даже что-то простое как, "когда мышь повторно вводит окно, кнопка мыши вниз?" работал бы.
Такая функциональность существует, и я просто пропускаю ее? Или есть ли некоторое умное обходное решение, которое я могу использовать здесь?
Поддержка прежней версии не имеет никакой важности для меня - если это - решение HTML5, которое только работает в FF3.5/Chr4/Sf4, я доволен этим.
Что, если бы у вас было событие onmouseout элемента, запускающее событие mouseup?
Если вы просто используете встроенные обработчики, что-то вроде:
<div id='dragElement' onmouseup='alert("stop dragging!")' onblur='this.onmouseup();'></div>
добавлено к любому коду обработки событий, который вы уже используете. Это «освободит» перетаскивание всякий раз, когда элемент теряет фокус. Не самый чистый код, но идею вы поняли.