我在文档主体上有一个事件侦听器,该事件侦听器可在鼠标按下时更改光标。每当我在Flickity实例中触发mousedown事件时,它都不会传播到文档主体。轻快的轮播和主体之间没有任何元素可以调用event.preventDefault()或event.stopPropagation()。
我如何允许Flickity实例内部触发的mousedown事件冒泡到文档主体?
我已经在Flickity源代码和文档中检查了stopPropagation以及mousedown时的preventDefault,但是我找不到任何指示这些方法用于停止或捕获事件的信息。我知道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();
};
不幸的是,注释掉此函数体并不能解决问题。