首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法更新

问无法更新
EN

Stack Overflow用户
提问于 2012-10-21 06:01:20
回答 2查看 51关注 0票数 0

我得到了下面的代码,我对它有问题。除了第一个实例之外,我无法计算“劳动项目”的任何实例的“总”数量,之后的每个实例我都无法计算它。

代码语言:javascript
复制
var LabourItems = {
   rate: null,
   hours: null,
   total: null,
   init: function(object) {
      this.rate = parseInt($(object).children('.rate').first().val(), 10);
      // var rate = $(object).children('.rate').first();
      this.hours =parseInt($(object).children('.hours').first().val(), 10);
      this.total = this.rate * this.hours;
      this.updateTotal(object);
   },
   updateTotal: function(object) {
      $(object).children('.total').first().val(this.total || 0);
   }
}

//reactTochange for those inputs that you want to observe
$('.labouritems input').on("keyup", function() {
   $('.labouritems').each( function(key,value){
      LabourItems.init(this);
   });
});
EN

回答 2

Stack Overflow用户

发布于 2012-10-21 06:06:26

这很简单:你不需要创建任何“Labouritems”的实例,你只有一个Labouritems对象。

票数 1
EN

Stack Overflow用户

发布于 2012-10-21 06:06:38

您的代码中没有任何“实例”,因为您从未调用过new。

要允许将LabourItems视为对象,请这样声明它:

代码语言:javascript
复制
function LabourItems(object) {
     return {
         rate: null,
         ...
     }
});

然后在事件处理程序中使用new LabourItems(this)。

或者(更有效地,因为每个实例将共享方法的副本,而不是包含它们自己的副本)使用普通的原型声明:

代码语言:javascript
复制
function LabourItems(object) {
     this.rate = null,
     ...
};

LabourItems.prototype.init = function() {
    ...
};

LabourItems.prototype.updateTotal = function() {
    ...
};

并使用如上的new LabourItems(this)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12993094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档