我读了20多篇不同的文章和论坛主题,尝试了不同的解决方案,但我没有科普它。下面的代码不工作。我需要有人的帮助...
LoginView.js
var LoginView = Backbone.View.extend({
//el: $('#page-login'),
initialize: function() {
_.bindAll(this, 'gotoLogin', 'render');
//this.render();
},
events: {
'click #button-login': 'gotoLogin'
},
gotoLogin : function(e){
e.preventDefault();
$('#signup-or-login').hide();
$('#login').show();
return true;
}
});
login.html
<div data-role="page" id="page-login">
<!-- SignUp or Login section-->
<div id="signup-or-login" data-theme="a">
<a data-role="button" data-theme="b" id="button-signup"> Sign Up </a>
<a data-role="button" data-theme="x" id="button-login"> Login </a>
</div>
<!-- Login section-->
<div id="login" data-theme="a">
<button data-theme="b"> Login </button>
<button data-theme="x"> Cancel </button>
</div>
</div>
该页面是在Backbone.Router扩展类的方法中创建的。
loadPage('login.html', new LoginView());
1条答案
按热度按时间y4ekin9u1#
据我所知,
$.mobile.loadPage()
获取所需的html并将其附加到DOM。当前,您正尝试在示例化
View
之后设置el
。但是,请注意,Backbone.View在示例化时附加了
el
和$el
:还要注意,
View.setElement()
通过将一个选择器或jQuery对象传递给View.el
来设置$el
:底线:
在示例化
el
时,需要设置它(在您的示例中,使用提供的jQuery对象):现在,您可以这样调用
loadPage()
:这为
Backbone.View
提供了委托事件的$el
。