私はAngularプロジェクトにクラシックなドロップダウンメニューを表示しています。メインリンクは常に表示されています。クリックイベントがタッチアクションで発生したかどうかを確認してください
私は親にある2つのイベントがあります。
ng-mouseenter="vm.toggleDropdown($event)"
ng-mouseleave="vm.hideDropdowns($event)"
をそして、彼らは完全に正常に動作します。主なリンクは単純です:
ng-click="vm.navToState(item.urlState, $event)"
パラメータとして渡される文字列に行くには、$ state.goを使用します。モバイルデバイスでは、ng-mouseenterがタップするとドロップダウンメニューが表示され、これは完璧です。これは、ng-clickがトリガーされているため、次のステートがロードされる前にメニューが数秒しか表示されないことです。 ng-clickがタッチイベントによって起動されているかどうかを検出する方法はありますか?if文をnavToState()に追加して$ state.go()を防ぐことができますか?私はメインリンクがモバイルで到達できないようにこの方法を理解していますが、ドロップダウン内に余分なリンクを追加することに注意します。
同じ結果の他の回避策も問題ありません。
ありがとうございます!
は、私はちょうどするevent.stopPropagation()を持つすべてのこれらのリンクにtouchstartイベントをバインドし、それはエミュレータ上うまくやっているようです。確かめるためにはもっとテストする必要があります。私はこれが正しい解決策であることを非常に疑う。 –