backbone.js点击事件未触发
阅读backbone.js视图的基础教程。backbone.点击事件" title="js点击事件">js点击事件未触发
预期的行为是在单击#sayhello按钮时调用渲染功能。渲染只需使用jQuery的html方法在el中放置“hello Bud Abbot”。
但是,当我点击#sayhello按钮,什么也没有发生。没有错误或任何东西。我在firebug中设置了一个断点,并且只是跳过了渲染函数。
这里的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:
<div id="helloworld"></div> <button id="sayhello">Say Hello</button>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
似乎什么奇怪的是,当我改变这样的:
new HelloWorldView({name: 'Bud Abbot'});
这样:
new HelloWorldView({name: 'Bud Abbot'}).render();
render方法被调用,但是当我试图用一个事件来做 - 没有骰子。任何帮助了解我做错了什么是非常感谢。
回答:
这是因为#sayhello不属于您的观点。尝试把#sayhello内#helloworld:
<div id="helloworld"> <button id="sayhello">Say Hello</button>
</div>
回答:
如果你使用模板动态渲染页面,然后在渲染功能考虑调用view.setElement(...);
this.setElement($('#login-container'));
以上是 backbone.js点击事件未触发 的全部内容, 来源链接: utcz.com/qa/263267.html