#javascript #jquery #drag-and-drop
#javascript #jquery #перетаскивание
Вопрос:
Я хочу иметь возможность щелкнуть по холсту, переместить его на карту, поместить его на карту. После того, как вы поместите его на карту, они могут выбрать холст на карте и переместить его снова. Процесс повторяется. У меня проблемы с переменной ignoreMouseMove, она не сбрасывается в false и всегда имеет значение true.
Вот ссылка на демонстрацию: https://pokemon-map-electro2k.c9users.io/index.html
var moveCanvas = function ($canvas, e) {
$(".map ul li." $canvas).offset({
left: e.pageX - 30,
top: e.pageY - 30
});
};
// When user first click on canvas
var onmousemove = function ($canvas) {
var ignoreMouseMove = false;
// Make canvas follow cursor in the map area
$(".map").mousemove(function (e) {
if (ignoreMouseMove) return; // event handling mousemove is "disabled"
moveCanvas($canvas, e);
}).click(function () {
// "re-enable" mousemove
ignoreMouseMove = true;
// When canvas is click on again within the map area, make canvas follow cursor
$(".map ul li").click(function () {
$(".map").mousemove(function (e) {
if (!ignoreMouseMove) return;
moveCanvas($canvas, e);
}).click(function () {
// Click function does not work anymore. ignoreMouseMove can't be reset. It is always true
ignoreMouseMove = false;
})
});
});
};
Комментарии:
1. Вы пробовали
mouseup
илиmousedown
вместо этого?2. да, но это не совсем то, что я хочу. Я хочу щелкнуть по холсту, поместить его на карту. Затем пользователь может щелкнуть холст на карте, чтобы изменить местоположение холста
3. Тем не менее, вы можете использовать
mousedown
для обработки «забрать» иmouseup
«удалить»4. но вы должны удерживать мышь нажатой, чтобы выбрать. Я хочу, чтобы изображение свободно следовало за курсором, не удерживая мышь нажатой, затем нажмите еще раз, чтобы удалить
Ответ №1:
Возможно, вам потребуется изменить нижеприведенную строку
// "re-enable" mousemove
ignoreMouseMove = true;
в
// "re-enable" mousemove
ignoreMouseMove = !ignoreMouseMove;
Комментарии:
1. работает ли ссылка? На веб-сайте есть изображения. JSFiddle не позволяет загружать файлы
2. ссылка работает, но я не смог изменить и протестировать, дайте мне посмотреть