轻拂会干扰mousedown事件

时间:2019-07-09 21:50:36

标签: javascript flickity

我在文档主体上有一个事件侦听器,该事件侦听器可在鼠标按下时更改光标。每当我在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();
};

不幸的是,注释掉此函数体并不能解决问题。

0 个答案:

没有答案