检查触摸操作是否触发了click事件

时间:2016-08-30 11:21:24

标签: angularjs events click touch

我在Angular项目上有一个经典的下拉菜单,其中始终显示一个主链接,并且仅在悬停此链接时显示一个子链接树。

我在父母身上有两个事件:

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所以我可以向navToState()添加一个if语句并阻止$ state.go()?我理解这种方式主要链接在移动设备中无法访问,但我会在下拉菜单中添加额外的链接。

对于相同结果的任何其他解决方法也很好。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以根据它是一个移动浏览器设置一个变量,并将其用作检查navToStart,看你是否声明更改,然后有一个单独的状态更改功能,不关心它是否&#39 ; s移动与否,您仍然可以在移动浏览器中更改状态?这是一个想法,但如果它不起作用,可能值得在您的问题中加入一些代码作为参考。

以下是检测移动浏览器的答案: https://stackoverflow.com/a/11381730/5349719