2017-02-08 9 views
1

リンク要素(タグ)または他のDOM要素のclickイベントがハンドラ/コールバック関数を呼び出さないという問題が発生しました。Chrome 56モバイルaddEventListener「クリック」が機能しない

階層内のどの親がこのイベントを取得しないかは関係ありません。

なしEvent.stopImmediatePropagationまたはEvent.stopPropagationは存在しません。

答えて

1

なぜChrome 56であるのか、いくつかのイベントを変更し、マウスイベントをタッチイベントに変換するのをやめます。

はこちらをご覧ください:https://developers.google.com/web/updates/2016/12/chrome-56-deprecations#mouse_on_android_stops_firing_touchevents

あなたが前にclickを使用した場合だけで、モバイル用のtouchstartイベントを使用し、問題を解決します。またはあなたは一つだけclickが必要な場合はあなたが行うことができます:

Element.addEventListener("click", callback); 
Element.addEventListener("touchstart", callback); 
function callback(event) { 
    Element.removeEventListener("click", callback); 
    Element.removeEventListener("touchstart", callback); 
    // do something 
} 

今、シミュレートをクリックして持っているあなたは、「touchstart」と「touchend」との間に300msのパスをチェックする必要があります。少ない場合はクリックがあります。

注:「クリック」イベント「touchstart」

+1

ナイスキャッチした後に発生するが、自分で実装するかhttps://github.com/ftlabs/fastclick/blob/master/lib/fastclick.jsを使用することをお勧めします – Meschiany

関連する問題