Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过获取Javascript来初始化变量_Javascript_Jquery_Asynchronous - Fatal编程技术网

如何通过获取Javascript来初始化变量

如何通过获取Javascript来初始化变量,javascript,jquery,asynchronous,Javascript,Jquery,Asynchronous,我试着开发游戏,通过抓取,我可以得到一些数据 我找到“重试”按钮,点击它们,我可以转到默认页面 当我尝试第二个游戏时,出现了一些错误 它可能来自某个变量单击,而更正未初始化为“0” 申报职位有什么问题吗 如果有人有什么意见,请告诉我。对不起,下面的工作时间太长了 //const fetch=require(“节点fetch”); 变量apikey=”https://opentdb.com/api.php?amount=2&type=multiple"; $(“.btn”)。在(“单击“,”开始

我试着开发游戏,通过抓取,我可以得到一些数据

我找到“重试”按钮,点击它们,我可以转到默认页面

当我尝试第二个游戏时,出现了一些错误

它可能来自某个变量
单击
,而
更正
未初始化为“0”

申报职位有什么问题吗

如果有人有什么意见,请告诉我。对不起,下面的工作时间太长了

//const fetch=require(“节点fetch”);
变量apikey=”https://opentdb.com/api.php?amount=2&type=multiple";
$(“.btn”)。在(“单击“,”开始“,函数()上){
让单击=0;
设correct=0;
$(“.header”).text(“正在提取…”);
$(“.content”).text(“请稍等”);
$(“.start”).hide()
取数(apikey)
.then(response=>response.json())
。然后(json=>{
显示(json,0);
$(“.btn”)。在(“单击”,“选择”,函数()上){
日志(“单击”,单击);
correct+=$(this).html()===json.results[单击]。正确答案?1:0
单击++;
控制台日志(正确);
if(单击==json.results.length){
显示结果(正确);
}否则{
显示(json,点击);
}
});
$(“.btn”)。在(“单击”,“重试”,函数()上){
console.log(“#”);
document.querySelector('.btn').innerHTML=“start”;
});
});
});
函数显示(json,单击){
const arr=[json.results[clicked]。正确答案].concat(json.results[clicked]。错误答案);
$(“.header”).text(“问题”+数字(点击+1));
$(“.category”).text(“[category]:”+json.results[clicked].category);
$(“.demobility”).text(“[demobility]:”+json.results[clicked].demobility);
$(“.content”).text(json.results[clicked].question);
设html=“”;
for(设i=0;i”;
}
document.querySelector('.btn')。innerHTML=html;
}
函数showresult(正确){
$(“.header”).text(“正确答案的数量为”+正确);
$(“.category”).hide()
$(“.demobility”).hide()
$(“.content”).text(“再次挑战”);
document.querySelector('.btn').innerHTML=“重试”;
}
函数洗牌(数组){
var currentIndex=array.length,
时间值,随机指数;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}

标题
欢迎

按下下面的按钮
开始
每次开始游戏时,您都要在
按钮中添加另一个
处理程序。因此,当您玩第二个游戏时,当您单击按钮时,处理程序将运行两次

您应该只绑定一次处理程序,而不是每次单击

您需要将一些变量移出全局变量

//const fetch=require(“节点fetch”);
变量apikey=”https://opentdb.com/api.php?amount=2&type=multiple";
让点击;
让我们改正;
让我们来看看全球的json;
$(“.btn”)。在(“单击“,”开始“,函数()上){
单击=0;
正确=0;
$(“.header”).text(“正在提取…”);
$(“.content”).text(“请稍等”);
$(“.start”).hide()
取数(apikey)
.then(response=>response.json())
。然后(json=>{
全局_json=json;
显示(json,0);
});
});
$(“.btn”)。在(“单击”,“选择”,函数()上){
日志(“单击”,单击);
correct+=$(this).html()==全局json.results[单击]。正确答案?1:0
单击++;
控制台日志(正确);
if(单击==json.results.length){
显示结果(正确);
}否则{
显示(全局_json,单击);
}
});
$(“.btn”)。在(“单击”,“重试”,函数()上){
console.log(“#”);
document.querySelector('.btn').innerHTML=“start”;
});
函数显示(json,单击){
const arr=[json.results[clicked]。正确答案].concat(json.results[clicked]。错误答案);
$(“.header”).text(“问题”+数字(点击+1));
$(“.category”).text(“[category]:”+json.results[clicked].category);
$(“.demobility”).text(“[demobility]:”+json.results[clicked].demobility);
$(“.content”).text(json.results[clicked].question);
设html=“”;
for(设i=0;i”;
}
document.querySelector('.btn')。innerHTML=html;
}
函数showresult(正确){
$(“.header”).text(“正确答案的数量为”+正确);
$(“.category”).hide()
$(“.demobility”).hide()
$(“.content”).text(“再次挑战”);
document.querySelector('.btn').innerHTML=“重试”;
}
函数洗牌(数组){
var currentIndex=array.length,
时间值,随机指数;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}

标题
欢迎

按下下面的按钮
开始
谢谢您的回答。我想了解为什么每次游戏开始时都要点击两次处理程序绑定。这个问题的直接原因是什么?感谢您每次调用
.on()
时添加的单击处理程序。它们不会相互替换。每次单击
.start
按钮时,您都在调用
.on()