В mousedown
Я хочу добавить новый элемент в DOM и сразу же перетащить его (т. Е. Триггер dragstart
), не нажимая новый элемент еще раз.Инициализировать элемент и начать перетаскивание одним щелчком мыши
Я использую d3.js много в моем проекте. Но я не знаю, смогу ли я вызвать dragstart
событие с помощью d3, поэтому я попытался с помощью JQuery:
$("circle#pen").trigger("dragstart");
Но это не работает.
Вот ссылка на jsFiddle, где я продемонстрирую свою проблему, пытаясь создать «ручку» на mousedown
, и если пользователь перетаскивает перо, он рисует линию. При dragend
ручка удаляется и линия исчезает. Но перо должно быть инициализировано, а затем его можно перетащить с помощью нового клика. Это просто для демонстрации проблемы.
Здесь related question for jQuery, но на это нет хорошего ответа.
такой kludge ... –
@TimSeguine Я согласен, не очень хорошее решение. Но это было то, с чем я закончил в 2013 году. Каково ваше решение? – swenedo
Основываясь на том, что вы описали, я бы, вероятно, поместил обработчики событий в область, где разрешено функционирование «пера». Мышь добавляет «ручку», как вы уже делали. Обработчик mousemove обновляет положение «перо». Обработчик mouseup удаляет «перо». Нет никакой реальной причины настаивать на том, чтобы делать это с помощью поведения перетаскивания, если это не так, как вы описали в своем вопросе. –