我是一个新手,对JavaScript和编程都不太熟悉。我认为我的做法有误,但我会尝试解释我要做什么以及如何做。但是它没有起作用。
我制作了一个页面,其中有五个方框,可以单击它们。当您单击其中一个时,它将运行存储在一个js文件中的函数,并查找匹配的一个,然后更改文本框中的文本以及下面五个方框中的选择。我认为我遇到了全局变量不能从一个包含的.js文件传递到另一个的问题。
我想不出其他方法来完成此操作。我不能只返回单个变量,因为每个情况语句的每个选择都需要更改约5个单独的变量。是否有更好的方法来往返传递此信息,而不是这些似乎无法工作的$choice变量?
文件1.js
我制作了一个页面,其中有五个方框,可以单击它们。当您单击其中一个时,它将运行存储在一个js文件中的函数,并查找匹配的一个,然后更改文本框中的文本以及下面五个方框中的选择。我认为我遇到了全局变量不能从一个包含的.js文件传递到另一个的问题。
我想不出其他方法来完成此操作。我不能只返回单个变量,因为每个情况语句的每个选择都需要更改约5个单独的变量。是否有更好的方法来往返传递此信息,而不是这些似乎无法工作的$choice变量?
文件1.js
var $choice1 = "0";
var $choice2 = "0";
var $choice3 = "0";
var $choice4 = "0";
var $choice5 = "0";
//Main Body - start doing stuff once the page has loaded
$( document ).ready(function() {
//Run once
NewArea("newgame");
$("#choice1").click(function() {
NewArea($choice1);
});
$("#choice2").click(function() {
NewArea($choice2);
});
$("#choice3").click(function() {
NewArea($choice3);
});
$("#choice4").click(function() {
NewArea($choice4);
});
$("#choice5").click(function() {
NewArea($choice5);
});
});
然后我们有文件2.js。
function NewArea($area) {
switch($area)
{
case "newgame": //Start of the game
$("#textbox").html("blah");
$("#choice1").html("Look around");
$choice1 = "look_1";
$("#choice2").html("Listen around");
$choice1 = "listen_1";
$("#choice3").html("Smell around");
$choice1 = "smell_1";
$("#choice4").html("Feel around");
$choice1 = "feel_1";
$("#choice5").html("Taste around");
$choice1 = "taste_1";
break;
case "look_1":
$("#textbox").html("blah2");
$("#choice1").html("");
$choice1 = "0";
break;
default:
break;
}
}
2.js
之前,先引入1.js
。 - A1rPun