backbone.js click事件未触发
浏览backbone.js视图的基础教程。
预期的行为是在单击#sayhello按钮时调用render函数。 渲染只是使用jQuery的html方法将“hello Bud Abbot”放入el中。
但是当我点击#sayhello按钮时,没有任何反应。 没有错误或任何事情。 我在firebug中设置断点并观察它只是跳过渲染function。
这是js:
App = (function($){ jQueryView = Backbone.View.extend({ initialize: function(){ this.el = $(this.el); } }); HelloWorldView = jQueryView.extend({ el: $('#helloworld'), events:{ 'click #sayhello': 'render' }, initialize: function(params){ jQueryView.prototype.initialize.call(this); this.name = params.name; }, render: function(){ console.log("rendering"); this.el.html("hello " + this.name); } }); var self = {}; self.start = function(){ new HelloWorldView({name: 'Bud Abbot'}); }; return self; });
这是html:
当我改变这个时,看起来很奇怪:
new HelloWorldView({name: 'Bud Abbot'});
对此:
new HelloWorldView({name: 'Bud Abbot'}).render();
调用render方法,但是当我尝试使用事件时 – 没有骰子。 非常感谢任何帮助,以了解我做错了什么。
这是因为#sayhello不是你观点的一部分。 尝试将#sayhello放在#helloworld中:
如果使用模板动态呈现页面,则在render函数中考虑调用view.setElement(…);
this.setElement($( ‘#登录容器’));