0

我有一个简单的初始化函数,它在正文中创建一个画布元素,并应将其引用保存在一个变量中。

我不知道我做错了什么,但 jQuery 不想返回引用:(

我尝试引用其他 html 元素,例如 body ,但这也不起作用。

奇怪的是,如果我$('#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 回答