Flickity вмешивается в событие mousedown - PullRequest
0 голосов
/ 10 июля 2019

У меня есть прослушиватель событий в теле документа, который меняет курсор на mousedown.Каждый раз, когда я запускаю событие mousedown внутри экземпляра Flickity, оно не распространяется на тело документа.Между каруселью flickity и телом, которые вызывают event.preventDefault () или event.stopPropagation (), нет элементов.

Как разрешить событию mousedown, запускаемому внутри экземпляра Flickity, пузыриться в теле документа?

Я проверил исходный код Flickity и документацию на stopPropagation и protectDefault при mousedown, но не смог найти ничего, указывающего на то, что эти методы используются для остановки или перехвата события.Я знаю, что у Flickity есть собственный API для событий, но я не вижу никакой документации, касающейся всплывающих событий в mousedown.

<body>
...
  <div class="flickity-enabled">
    <div class="flickity-viewport">
      <div class="flickity-slider">
        <div class="carousel-slide"></div>
        <div class="carousel-slide"></div>
        <div class="carousel-slide"></div>
      </div>
    </div>
  </div>
...
</body>

<script>
// executes outside of .flickity-enabled, but not inside
document.body.addEventListener('mousedown', function() {
  console.log('mousedown fired');
});
</script>

Просматривая flickity.js, я обнаружил следующее -

// keep focus on element when child UI elements are clicked
proto.childUIPointerDown = function( event ) {
  // HACK iOS does not allow touch events to bubble up?!
  if ( event.type != 'touchstart' ) {
    event.preventDefault();
  }
  this.focus();
};

К сожалению, комментирование этого тела функции не решает проблему.

...