Angular ui sref无法处理触摸事件

时间:2015-07-07 10:52:52

标签: javascript jquery angularjs angular-ui-router

我有一个链接ui-sref属性和一个jQuery touch事件,但问题是,当我点击这个元素时,jQuery处理程序正在运行,但ui-sref没有。

Jquery的:

$('#fa-bar, #mobile-nav li').on('touchstart', function( e ) {
      e.stopPropagation();
      $('#mobile-nav').toggleClass('toggle-mobile-nav');
      $('#mobile-nav').toggleClass('prevent-scroll');
 });

HTML:

 <li ui-sref="state" ui-sref-active="nav-active"><a>Link</a></li>

2 个答案:

答案 0 :(得分:0)

请参阅https://github.com/npm/npm/issues/3697和此docs

  

但是,stopEvent还会调用事件对象方法event.stopPropagation,该方法可以防止事件进一步冒泡到DOM中。请注意,表本身有一个onclick事件处理程序,在单击表时应该显示一条消息。但是stopEvent方法已停止传播,因此在更新表中的数据后,事件阶段将有效结束,并显示一个警告框以确认这一点。

这是纯粹的javascript,也适用于AngularJS。您对c.a的呼叫会阻止ui-router获取该事件。如果您想要为某些内容添加URL(因此您仍然可以使用浏览器中的open-in-new-tab功能),这有时会很方便,但希望在正常点击时有不同的行为。

答案 1 :(得分:0)

ui-router

使用最新或至少0.3.2
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.min.js"></script>