Jquery没有使用!text插件需要带有主干的js

时间:2013-12-15 22:45:23

标签: javascript jquery backbone.js requirejs

我为我的主视图创建了一个模板文件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)正在运行。

知道是什么导致了这一点。感谢。

1 个答案:

答案 0 :(得分:1)

在HTML存在之前,您似乎正在运行禁用。我敢打赌,如果你console.log($('#addcompareitem')),你将不会得到任何元素。相反,请在运行this.$el.html(homeTemplate)后立即尝试禁用按钮。

为了清楚起见,在构造某些东西时调用initialize,然后在构造的对象上调用render。