Js / Jquery中的变量范围问题

时间:2016-03-06 21:11:45

标签: javascript jquery scope requirejs

有问题 - 我应该是什么 - 基础范围基础。 我正在使用带有Require JS结构的Javascript,这里是问题所在:

function GameManager() {
    //This is the constructor of gamemanager.js file
    this.body = $('body');
    this.game = $('#game');
}

GameManager.prototype.createGame = function() {

    //Code

    //this line works
    this.body.append(//Some HTML);
}

GameManager.prototype.showGame = function() {
    //Code

    //this line does not work wtf
    this.game.removeClass("display-none");
    //and this one does work.
    $("#game").removeClass("display-none");
}

我正在使用this.body成功,所以我想对this.game使用相同的方式,但它不起作用。我可以通过直接使用$("#game")来使其工作,但它每次都使jquery在DOM中运行,所以没有真正优化...

我当然错过了一些基本要点,有人可以解释一下吗?

由于

1 个答案:

答案 0 :(得分:0)

这对我有用。我可以从div中删除display-none类没有问题。然而它不会显示。你需要改变CSS。 this.body.css("显示""块&#34);例如。

window.onload = function() {

function GameManager() {
    //This is the constructor of gamemanager.js file
    this.body = $('body');
    this.game = $('#game');
}

GameManager.prototype.createGame = function() {

    //Code

    //this line works
    this.body.append();
}

GameManager.prototype.showGame = function() {
    //Code

    this.body.css("display", "block");
    //this line does not work wtf
    this.game.removeClass("display-none");
    //and this one does work.
    //$("#game").removeClass("display-none");
}


var myGame = new GameManager();
myGame.showGame();
}