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

回到顶部