Javascript ng click事件绑定到angular js中的子li
嘿,我正在使用ng click指令在li上绑定MENUICCLICK($event)函数。但也会绑定到子li。 代码如下Javascript ng click事件绑定到angular js中的子li,javascript,angularjs,haml,angularjs-ng-click,Javascript,Angularjs,Haml,Angularjs Ng Click,嘿,我正在使用ng click指令在li上绑定MENUICCLICK($event)函数。但也会绑定到子li。 代码如下 %div.sideNavBar %ul.navBar %li.icons-briefcase-static{'ng-click'=>"menuIconClick($event)"} // binding here only %ul.subMenu %li All sites // but gets call here also
%div.sideNavBar
%ul.navBar
%li.icons-briefcase-static{'ng-click'=>"menuIconClick($event)"} // binding here only
%ul.subMenu
%li All sites // but gets call here also
%li{'ng-repeat'=>"site in sites"}
{{site.name}}
%li.icons-users-disabled
%div.lock.icons-lock-disabled
In html list,
模板是用HAML编写的。
我不知道为什么
In html list,
感谢任何帮助试试他的帮助
e.stopPropagation()
我对此不确定
%li.icons-briefcase-static{'ng-click'=>"menuIconClick($event);$event.stopPropagation();"}
In html list,
尝试将icon&icon click事件作为单独的元素,而不是父元素。DOM事件在层次结构中冒泡,因此如果父元素具有
ng click
处理程序,则单击任何子元素也将触发该父click处理程序,除非停止事件传播
In html list,
您可以停止事件传播,类似于:
In html list,
In html list,
或者更改DOM结构,使公文包图标不是子菜单的父菜单:
%div.sideNavBar
%ul.navBar
%li
%a.icons-briefcase-static{'ng-click'=>"menuIconClick($event)"} // no longer a parent
%ul.subMenu
%li All sites // click here won't bubble up to ng-click
%li{'ng-repeat'=>"site in sites"}
{{site.name}}
%li.icons-users-disabled
%div.lock.icons-lock-disabled
In html list,
试试这个:
In html list,
ng click=“menuIconClick($event)”
In html list,
$scope.menuIconClick=函数(ev){
In html list,
}是否只是因为一个
在另一个内部,所以单击事件“冒泡”到层次结构中?@chandu抱歉,没有代码fiddle我已经给了$event.stopPropagation();但该函数仍然在child li click上被调用。您可以尝试使用ng click active=“$first”吗?这完全是为了我。已停止在父标记上设置的其他单击事件。感谢您的响应。我无法更改结构,但当我使用StopRopAgation时,它对我无效。您是否在子标记上使用StopRopAgation?不是像@chandu shows这样的父级?我已经像chandu提到的那样给出了=>%li.icons公文包静态{'ng-click'=>“menuIconClick($event);$event.stopPropagation();“}是的,这对你没有任何帮助。您希望对子元素调用stopPropagation<代码>%li{'ng-click'=>'$event.stopPropagation();'}所有站点
In html list,