Приветствую всех!
Есть SVG карта:
<div class="map-rent">
<div class="map-build">
<?=$row->svg?>
</div>
</div>
Внутри, понятное дело
G, rect, path элементы
Есть таскалка всего этого дела:
$('.map-build').draggable(
{
drag: function (event, ui) {
}
}
);
Непонятно одно. Когда хватаешь SVG и потащил, то отрабатывает любой
event на "клик" по селектору
.map-rent g > rect или
.map-rent g > path
Как узнать, когда просто потаскал, а когда просто кликнул.
Погуглив, нашел вот такое решение:
...
.draggable({
...
start: function(event, ui) {
ui.helper.bind("click.prevent",
function(event) { event.preventDefault(); });
},
stop: function(event, ui) {
setTimeout(function(){ui.helper.unbind("click.prevent");}, 300);
}
...
})
Проблема то в том, что у меня не
ui аргумент подвержен клику, а
.map-rent g > rect или
.map-rent g > path. Это вложенные узлы в этот самый ui
Всяко разно пытался, не могу сообразить как сделать prevent пока тащишь