我为我的主视图创建了一个模板文件home.html
,其中包含一个表单:
<form class="adform">
<input type="button" id="addcompareitem" class="addcompareitem" value="Add compare item" />
</form>
这是我家视图的一些代码:
var HomeView = Backbone.View.extend({
initialize: function() {
item1.disableCompareBtn();
},
render : function(){
this.$el.html(homeTemplate);
}
});
return HomeView;
这是disableCompareBtn
方法:
this.disableCompareBtn = function(){
if(compareitems == null || compareitems.length < 2){
$('#addcompareitem').prop('disabled', true);
console.log(1);
}
};
问题:当主视图初始化时,按钮仍然启用,但console.log(1)正在运行。
知道是什么导致了这一点。感谢。
答案 0 :(得分:1)
在HTML存在之前,您似乎正在运行禁用。我敢打赌,如果你console.log($('#addcompareitem'))
,你将不会得到任何元素。相反,请在运行this.$el.html(homeTemplate)
后立即尝试禁用按钮。
为了清楚起见,在构造某些东西时调用initialize,然后在构造的对象上调用render。