我有一个菜单组件,它从一个数组构建一个树形菜单。
要切换子菜单,请执行以下操作:

  didInsertElement:function(){
    this.$('li.sub').click(function(e){
      $('ul', this).slideToggle();
    });
  }


只要单击“设置”,我就可以正常工作。如果我尝试单击子菜单之一。 '货币'关闭父菜单项。

这是一个jsBin演示问题:
单击“设置”->,然后单击打开的子项之一:

http://emberjs.jsbin.com/bexivuhohu/6/edit

最佳答案

这样做的原因是父组件仍在处理点击-即使在子组件上单击也是如此。

我建议将click处理移至组件而不是jQuery-并返回false。如果子组件返回false,则父组件不会对单击进行双重处理。

click: function() {
  this.$('ul').slideToggle();
  return false;
}


请参阅此工作的JSBin:http://emberjs.jsbin.com/bibeho/1/edit?html,js,output

关于javascript - emberjs菜单组件冒泡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29940816/

10-14 22:46
查看更多