Marionette模块中的“click .className”事件未触发

时间:2014-07-16 14:21:04

标签: javascript jquery event-handling marionette

我有一些看起来像这样的代码

myApp.module(args, function(args){
  Views.MainView = Marionette.ItemView.extend({
    //template, tagName, className
    down: false,
    events: {
      "click .barClassName": "rollUp"
    },

    rollUp: function(){
      if(this.down){
        $(".dropDownDivClass", this.$el).slideUp(200);
        this.down = false;
      }
    }
  });
});

基本上我的页面顶部有一个导航栏,每个项目都有一个相关的下拉菜单。我已经成功实现了代码以使菜单下拉,但是如果我点击其他项目,我希望它们可以向上滑动。 (此ItemView对象在导航栏中的项目上。)对此的任何帮助都会很棒! 感谢

1 个答案:

答案 0 :(得分:0)

尝试将动画移动到onClose(),或者可能需要onBeforeClose()。

onClose: function() {
    this.$el.slideUp(200);
}

假设您控制此ItemView的其他代码正在使用Marionette的show()来替换显示哪一个。如果是这样,之前的视图将在被新视图替换之前关闭。因此,如果视图已关闭,您不需要保留标记。

除非我完全误解你是如何进行此设置的。发布使菜单下拉的其余代码可能很有用。