У меня есть прослушиватель событий в теле документа, который меняет курсор на 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();
};
К сожалению, комментирование этого тела функции не решает проблему.