Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events backbone.js初始化侦听器与事件_Events_Backbone.js_Views_Listener - Fatal编程技术网

Events backbone.js初始化侦听器与事件

Events backbone.js初始化侦听器与事件,events,backbone.js,views,listener,Events,Backbone.js,Views,Listener,我不理解将“单击”侦听器放在视图内的初始化函数中与将其放在同一视图中的事件对象中的区别。它们都侦听DOM事件和触发器函数,对吗?有什么区别 例如: var ViewName = Backbone.View.extend({ initialize: function(){ this.$el.on("eventName", this.functionName, this) }, functionName: function(){

我不理解将“单击”侦听器放在视图内的初始化函数中与将其放在同一视图中的事件对象中的区别。它们都侦听DOM事件和触发器函数,对吗?有什么区别

例如:

var ViewName = Backbone.View.extend({  
    initialize: function(){  
        this.$el.on("eventName", this.functionName, this)  
    },  
    functionName: function(){  
        //whatever  
    }  
});
与:

var ViewName = Backbone.View.extend({  
    events: { "eventName": "fucntionName" }   
    },  
    functionName: function(){  
        //whatever  
    }  
});
当您这样做时:

var ViewName = Backbone.View.extend({  
   initialize: function(){  
      this.$el.on("eventName", this.functionName, this)  
   },  
   functionName: function(){  
    //whatever  
   }  
});
删除视图时,必须手动解除事件绑定。因此,您必须执行以下操作:

var ViewName = Backbone.View.extend({  
   initialize: function(){  
      this.$el.on("eventName", this.functionName, this)  
   },  
   functionName: function(){  
    //whatever  
   },
   remove: function() {
      this.$el.off("eventName", this.functionName);
      Backbone.View.prototype.remove.apply(this, arguments);
   }  
});

如果使用
事件
散列,则在删除视图时,主干将负责取消删除事件。这些都在中进行了解释。

This.on(“eventName”,This.functionName,This)
根本不听DOM事件,所以您的问题没有意义。嗯。。。好吧,那它有什么作用?我真的做了4到5次代码学校的课程,但我不明白。你不能把“点击”作为第一个事件?如果是this.el之类的呢?主干的事件()与jQuery的事件不一样。你可以
this.$el.on(…)
但如果有人使用它,它就会中断。@EricHannum我想你可以在一个点上组织你的活动。当你去看任何活动时,你不需要到处看活动的位置。谢谢你:D这正是我要找的。