Я относительно новичок в jQuery, поэтому прошу прощения, если задаю элементарный вопрос, но у меня проблема с запуском событий. Прямо сейчас я пытаюсь создать своего рода инструмент панорамирования изображений, где пользователь может панорамировать изображение в любом направлении в окне просмотра (фиксированный div). При нажатии кнопки мыши функция начнет выполнять пару вычислений, а при перемещении мыши выполнит еще несколько вычислений перед передачей значений в
$(this).css('background-position', both);
Строка, где обе - это вновь рассчитанная позиция.
Это работает до этого момента, но у меня возникают проблемы с освобождением от события mousemove
. После начального нажатия мыши и перемещения мыши я не могу отключить панорамирование с помощью мыши вверх, и пользователь может панорамировать изображение, не щелкая.
Вот основной скелет (#test
относится к блоку просмотра):
$("#test").mousedown( function(e) {
/* Various Calculations*/
$(this).mousemove( function(f) {
/* More Calculations, variable 'both' is assigned new coord value */
$(this).css('background-position', both);
});
});
Я пытался прикрепить событие mouseup
в разных местах, но я не уверен, где именно нужное место и как его освободить. Любая помощь приветствуется!
2 ответа
Для удаления события нужно отвязать его от объекта:
$("#test").unbind("mousemove");
Остальная часть вашего вопроса мне не понятна
В качестве альтернативы есть перетаскиваемый элемент в пользовательском интерфейсе jQuery, который может удовлетворить ваши потребности. Он включает события для запуска, остановки и перетаскивания.
Все зависит от того, хотите ли вы другую зависимость.
По крайней мере, вы можете изучить, как они выполняют свою последовательность событий, чтобы имитировать такое же поведение.
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.