我得到了以下在控制台中出错的js代码,但我不太确定自己在做什么错。基本上我正在尝试获取字段列表,以便可以进行一些计算。

var LabourItems = {
    rate: null,
    hours: null,
    total: null,
    init: function(object) {
        var rate = $(object).children('.rate').first();
        var hours =$(object).children('.hours').first();
        total = rate * hours;
        updateTotal(object,total);
    },
    updateTotal: function(object,  total) {
        $(object).children('.total').first().attr('value', total)
    }
}

//reactTochange for those inputs that you want to observe
$('.hours').live(function() {
    var labourItems;

    jQuery.each($('.labouritems'), function(key,value){
        labourItems.push(LabourItems.init(value));
    });

});


控制台错误:

Uncaught TypeError: Object function () {
    var labourItems;

   jQuery.each($('.labouritems'), function(key,value){
       labourItems.push(LabourItems.init(value));
   });

} has no method 'replace'

最佳答案

live需要一个事件类型,例如。 click

它将函数作为事件字符串处理,令人困惑。

$('.hours').live(function() { /*... your code ...*/})    // wrong


需要是:

$('.hours').live("click", function() { /*... your code ...*/})    // works

10-05 20:27