emberjs菜单组件冒泡

时间:2015-04-29 10:18:15

标签: javascript jquery ember.js

我有一个菜单组件,它从一个数组构建一个树状菜单。 要切换我做的子菜单:

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

只要点击“设置”,我就可以正常工作。如果我尝试单击其中一个子菜单。 'Currency'它关闭父菜单项。

这是一个用于演示问题的jsBin: 点击“设置” - >然后单击其中一个打开的子项:

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

1 个答案:

答案 0 :(得分:2)

原因是父组件仍处理点击 - 即使点击子组件也是如此。

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

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

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