1

次のスクリプトを短縮しました:

var HTH = HTH || {};

(function() {
    var assetGrouping = function() {
        var self = this;

        this.options = {
            _tmpElement:        '',
            QuantityAssigned:   0,
            qtyInputField:      ''
        };

        this.init = function(options){
            // ...
            this.options.QuantityAssigned = 0;
            jQuery(this.options.qtyInputField).bind('keyup', function(){
                self._tmpElement = jQuery(this);
                self.CalculateQuantityAssigned();
            });

            // ...
        }

        CalculateQuantityAssigned = function(){
            // ...
        }
    }

    HTH.assetGrouping = new assetGrouping();
})();

$(document).ready(function(){
    HTH.assetGrouping.init({
        qtyInputField: 'input[name^="at700_group_qty"]'
    });
});

エラーは次の行で発生します:self.CalculateQuantityAssigned();そしてエラーはUncaught TypeError: Object [object Object] has no method 'CalculateQuantityAssigned'です。

理解できない。使用thisはもちろん失敗し、selfアクセスしたいときに機能しますが、では機能self.optionsしませんself.CalculateQuantityAssigned()

ありがとう。

4

2 に答える 2

5

変化する:

CalculateQuantityAssigned = function(){
            // ...
}

this.CalculateQuantityAssigned = function(){
            // ...
}
于 2012-07-16T20:49:47.130 に答える
1
(function () {
});  <-- You have a function, but you never execute it!

追加する必要があります();

于 2012-07-16T20:57:13.820 に答える