2016-12-22 5 views
0

私たちのプロジェクトではiScrollを使用していますが、スクロールエリア内のいくつかの要素にはmousedownイベントが添付されています。最新のGoogle Chromeのビルド(55.0.2883.95(64ビット))mouseDownイベントがトリガされることはありませんし、理由にJavaScript - iScroll-mousedown not triggering

はIScrollによって登録pointerdownイベントです。

周辺には何もありませんか?私はもちろんmousedownではなくpointerdownを使うことができますが、Safariではサポートされていないので、いくらか汚れたブラウザチェックが必要です。

(function() { 
 
    var scroll = new IScroll('#scroller'); 
 

 
    document.getElementById('testblock').addEventListener('mousedown', mousedownEventHandler); 
 
    
 
    function mousedownEventHandler(event) { 
 
    console.info(event.type, 'triggered.'); 
 
    } 
 
})();
body { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
#scroller { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    bottom: 0; 
 
    right: 0; 
 
} 
 

 
#content { 
 
    height: 5000px; 
 
    background: white; 
 
} 
 

 
#testblock { 
 
    position: fixed; 
 
    top: 0; 
 
    width: 100px; 
 
    height: 100px; 
 
    line-height: 100px; 
 
    background: silver; 
 
    border: 1px solid black; 
 
    cursor: pointer; 
 
    text-align: center; 
 
}
<script src="https://rawgit.com/cubiq/iscroll/master/build/iscroll-probe.js"></script> 
 
<div id="scroller"> 
 
    <div id="content"> 
 
    <div id="testblock">Click me</div> 
 
    </div> 
 
</div>

答えて

1

あなたはオプションのオブジェクトにクリックパラメータを追加する必要があります。

var scroll = new IScroll('#scroller', { 
    click: true 
}); 
+0

知らん、それは本当に1ということ助けない:/ – Clem

+1

はcubiqは今のところ、回避策を持っているようです。 Chrome 55はポインタイベントを追加するため、iScrollはポインタイベントを正しくサポートしていません。あなたは回避策として頭に小さなスクリプト文を追加する必要があります...ひどいですが、私のテストでもうまくいくような他の提案があります。 https://github.com/cubiq/iscroll/issues/1100 – chrismauck

+1

簡単なパラメータであなたのフィドルを更新しました... https://jsfiddle.net/dck8med7/2/ – chrismauck