Как говорится в названии, у меня есть объект, и мне нужно все это перетащить и щелкнуть события. Об этой проблеме был some discussion, но в основном это касалось событий щелчка и перетаскивания. (и скрипт ответа не работал должным образом)d3.js: Различие между перетаскиванием/запуском/окончанием и событием click
У меня есть fiddle здесь, где я нахожусь. Когда я перетаскиваю, щелчок блокируется, но когда я нажимаю стрелку dragstart и заканчивает огонь. Я бы хотел, чтобы они не стреляли, когда я нажимаю, и я бы хотел, чтобы не стрелял, когда я хочу перетащить.
var drag = d3.behavior.drag()
.origin(function(d){return d})
.on('drag', function(d){
d3.select(this).attr('cx', function(d){ return d.x += d3.event.dx });
d3.select(this).attr('cy', function(d){ return d.y += d3.event.dy });
console.log('dragging');
})
.on('dragstart', function(d){
d3.event.sourceEvent.stopPropagation()
console.log('drag start');
})
.on('dragend', function(d){
console.log('drag end');
})
// .....
MySvgElementWith3DStuffOnIt.on('click', function(){
if(d3.event.defaultPrevented) return;
console.log('clicked');
});
так много примеров в Интернете для этого. плохо взгляните на один – thatOneGuy