Javascript t

Javascript t,javascript,Javascript,这总是一个错误。如果currentroom是一个变量,请删除其中的引号 这总是一个错误。如果currentroom是一个变量,请删除其中的引号。只要演示一下我的意思 您应该将任何DOM操作从游戏引擎中分离出来。 另一种情况是,你会得到一些无法支持的东西 简单的步骤是提取回复方法: var game = { reply: function(msg) { $("<p>"+msg+"</p>") .hide() .insertBefore("

这总是一个错误。如果currentroom是一个变量,请删除其中的引号


这总是一个错误。如果currentroom是一个变量,请删除其中的引号。

只要演示一下我的意思


您应该将任何DOM操作从游戏引擎中分离出来。 另一种情况是,你会得到一些无法支持的东西

简单的步骤是提取回复方法:

var game = {
  reply: function(msg) {
    $("<p>"+msg+"</p>")
      .hide()
      .insertBefore("#placeholder")
      .fadeIn(1000);
  }
};
然后我们可以将动作等包含在内:

game.moveTo = function(room) {
  // game normally should to know available rooms list
  // if (!this.rooms[room]) return this.reply('Unknown room ' + room);
  if (room === this.currentRoom) return this.reply('You are already here!');
  this.currentRoom = room;
  this.reply('You now in '+room);
}

请证明我的意思


您应该将任何DOM操作从游戏引擎中分离出来。 另一种情况是,你会得到一些无法支持的东西

简单的步骤是提取回复方法:

var game = {
  reply: function(msg) {
    $("<p>"+msg+"</p>")
      .hide()
      .insertBefore("#placeholder")
      .fadeIn(1000);
  }
};
然后我们可以将动作等包含在内:

game.moveTo = function(room) {
  // game normally should to know available rooms list
  // if (!this.rooms[room]) return this.reply('Unknown room ' + room);
  if (room === this.currentRoom) return this.reply('You are already here!');
  this.currentRoom = room;
  this.reply('You now in '+room);
}

这是一个问题,是的。这是一个问题,是的。您应该将任何DOM操作从游戏引擎中分离出来。在另一种情况下,您将收到一些无法支持的内容。“currentroom”=“area_2”。你检查过了吗?你应该将DOM操作从游戏引擎中分离出来。在另一种情况下,您将收到一些无法支持的内容。“currentroom”=“area_2”。你检查过这个了吗?完全重组OP的代码可能是个好主意,但这完全忽略了他们实际提出的问题,即为什么他们的
else
案例总是执行。@nnnn,不要对此进行投票。这不是答案,只是一点帮助。这里已经有了很好且正确的答案。完全重组OP的代码可能是个好主意,但这完全忽略了他们实际提出的问题,即为什么他们的
else
案例总是执行。@nnnn,不要对此进行投票。这不是答案,只是一点帮助。这里已经有了很好的正确答案。
if (input == "text 1" && currentroom == "area_1") {
    $("<p>reply 1.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}
else if (input == "text 1" && currentroom != "area_1") {
    $("<p>reply 2.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}
else if (input == "go to area 2" && currentroom == "area_1") {
    currentroom = "area_outside";
    $("<p>You are now  in area 2.</p>")
}
else if (input == "go to area 2" && currentroom != "area_1") {
    $("<p>You cant go that way.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}
else if (input == "go to area 1" && currentroom == "area_2") {
    currentroom = "area_outside";
    $("<p>You are back in area 1.</p>")
}
else {
    //invaild commands/dont understand.
    $("<p>" + input + " is not vaild. type help for vaild commands.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}
"currentroom" == "area_2"
var game = {
  reply: function(msg) {
    $("<p>"+msg+"</p>")
      .hide()
      .insertBefore("#placeholder")
      .fadeIn(1000);
  }
};
switch(input) {
  case 'text 1':
    game.reply(currentroom == 'area_1' ? "reply 1." : "reply 2.");
  break;
  case 'go to area 2':
    switch(currentroom) {
      case 'area_1':
        currentroom = 'area_outside';
        game.reply("You are now in area 2.");
      break;
      default:
        game.reply("You cant go that way.");
    }
  break;
  default:
    game.reply('Wrong input');
}
game.moveTo = function(room) {
  // game normally should to know available rooms list
  // if (!this.rooms[room]) return this.reply('Unknown room ' + room);
  if (room === this.currentRoom) return this.reply('You are already here!');
  this.currentRoom = room;
  this.reply('You now in '+room);
}