0

本体にキャンバス要素を作成し、その参照を変数に保存する必要がある単純な初期化関数があります。

何が間違っているのかわかりませんが、jQueryは参照を返したくありません:(

body などの他の html 要素を参照しようとしましたが、これも機能しませんでした。

奇妙なこと$('#Gravity_Canvas')に、Chrome デバッガーで実行すると参照が得られます。

コードは次のとおりです。

function Gravity() {
    this.containerRef = null;
    this.objGroups = null;
    this.objects = new Array();

    init();

    function init() {
        $('body').append('<canvas id="Gravity_Canvas" width="' + window.innerWidth + '" height="' + window.innerHeight + '"> </canvas>');
        this.containerRef = $('#Gravity_Canvas'); // Here is the problem

        this.objGroups = { 'default': new ObjectGroup() };
    }
}

ご協力いただきありがとうございます。

4

1 に答える 1

1

以下のようにコードを変更できます。「その」変数を導入したことに注意してください。これは、 init() 内のthisが Gravity() 内のthisと同じオブジェクトを参照していないためです。

function Gravity() {
    var that = this;
    that.containerRef = null;
    that.objGroups = null;
    that.objects = new Array();

    init();

    function init() {
        that.containerRef = $('<canvas id="Gravity_Canvas" width="' + window.innerWidth + '" height="' + window.innerHeight + '"> </canvas>');
        $('body').append(that.containerRef);

        that.objGroups = { 'default': new ObjectGroup() };
    }
}
于 2013-10-23T20:34:25.460 に答える