#javascript #snap.svg
#javascript #snap.svg
Вопрос:
Как следует из названия, событие щелчка срабатывает автоматически после окончания перетаскивания. Это то, что у меня есть:
<svg id="testCanvas" viewBox="0 0 1000 500" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"/>
и:
var s = Snap('#testCanvas');
ii = s.image('oneBookTest/scania.svg', 10, 10, 100, 100);
ii.drag().click(function(){console.log('click');});
Перетаскивание работает нормально, но запускает событие «щелчок», когда перетаскивание заканчивается (наведение курсора мыши). Я пробовал с:
ii.mouseup(function(e){e.preventDefault();});
но безрезультатно. Это ожидаемое поведение? Можно ли избежать этого с помощью чего-то менее хакерского, чем «просто перетаскиваемая» переменная и setTimeout ?
Вот скрипка: http://jsfiddle.net/98JJ5/3 /
Комментарии:
1. Иногда флаг кажется лучшим способом. Я бы все же разместил пример на jsfiddle.
2. Кроме того, почему бы не удалить добавленный вами обработчик щелчка. Я подозреваю, что это часть более серьезной проблемы, но я думаю, вам все равно нужно выделить проблему, показывающую, почему вам нужно добавить обработчик щелчка (поскольку вы не хотите, чтобы он срабатывал).
3. Привет, спасибо за идеи. На данный момент я использую флаг. Мне нужен щелчок, потому что я хочу, чтобы что-то происходило, когда пользователь нажимает на изображение. Я пишу что-то вроде редактора изображений, поэтому мне нужно, чтобы пользователь мог нажимать и перетаскивать разные вещи. Как добавить Snap.svg в jsfiddle?
4. Вы можете использовать cdn и добавить в lhs дополнительные ресурсы в скрипте, или вы можете просто Google привязать jsfiddle и разветвить тот, который уже существует (изменение параметров и т. Д.). Если вы делаете это часто, возможно, стоит настроить базовый пример привязки в своей учетной записи, который затем можно разветвлять / клонировать или что-то в этом роде.