Adobe
@Adobe
php developer

Как сделать click prevent в draggable?

Приветствую всех!
Есть 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 пока тащишь
  • Вопрос задан
  • 250 просмотров
Пригласить эксперта
Ответы на вопрос 2
bootd
@bootd Куратор тега HTML
Гугли и ты откроешь врата знаний!
Попробуйте event.preventDefault(); заменить на console.log(event.type). Узнаете какие события срабатывают
Ответ написан
@amatory10
event.stopPropagation позволяет отменить действие родителя может поможет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект