Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 - Fatal编程技术网

Javascript 我';我做错了吗?代码崩溃了

Javascript 我';我做错了吗?代码崩溃了,javascript,Javascript,我真的不知道我做错了什么 setInterval(函数(){ var time=document.getElementById(“计时器”).innerHTML; var x=时间*1000-400; setTimeout(函数(){ var x2=document.getElementById(“2x总数”).innerHTML; var x3=document.getElementById(“总计3倍”).innerHTML; 如果(x2

我真的不知道我做错了什么

setInterval(函数(){
var time=document.getElementById(“计时器”).innerHTML;
var x=时间*1000-400;
setTimeout(函数(){
var x2=document.getElementById(“2x总数”).innerHTML;
var x3=document.getElementById(“总计3倍”).innerHTML;
如果(x2<2*x3){
var evt=document.createEvent(“MouseEvents”);
initMouseEvent(“单击”,true,true,window,0,0,0,0,false,false,false,false,false,false,0,null);
var run=document.getElementById(“btn2x”);
运行调度事件(evt);
}
},x);
}, 7000);
函数x2a(){
document.getElementById(“x2p”).innerHTML=x2;
}
函数x3a(){
document.getElementById(“x3p”).innerHTML=x3;
}
01.14
2x
3x
12000
12000


首先删除while(1){}循环。

问题是您在
setInterval
匿名方法中声明了
x2
x3
变量。试试这个:

var x2;
var x3;
setInterval(function() {
    var time = document.getElementById("timer").innerHTML;
    var x = time * 1000 - 400;
    setTimeout(function() {


            x2 = document.getElementById("2x-total").innerHTML;
            x3 = document.getElementById("3x-total").innerHTML;
            if (x2 < 2 * x3) {
                var evt = document.createEvent("MouseEvents");
                evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                var run = document.getElementById("btn2x");
                run.dispatchEvent(evt);
            }

    }, x);

}, 7000);


function x2a() {
    document.getElementById("x2p").innerHTML = x2;
}

function x3a() {
    document.getElementById("x3p").innerHTML = x3;
}
var-x2;
var-x3;
setInterval(函数(){
var time=document.getElementById(“计时器”).innerHTML;
var x=时间*1000-400;
setTimeout(函数(){
x2=document.getElementById(“总计2倍”).innerHTML;
x3=document.getElementById(“总计3倍”).innerHTML;
如果(x2<2*x3){
var evt=document.createEvent(“MouseEvents”);
initMouseEvent(“单击”,true,true,window,0,0,0,0,false,false,false,false,false,false,0,null);
var run=document.getElementById(“btn2x”);
运行调度事件(evt);
}
},x);
}, 7000);
函数x2a(){
document.getElementById(“x2p”).innerHTML=x2;
}
函数x3a(){
document.getElementById(“x3p”).innerHTML=x3;
}

而(1)
创建一个无限循环。在该循环中,您正在设置循环计时器。当然,这会使浏览器崩溃
setInterval()
已经将每7000毫秒运行一次回调,那么循环的目的是什么呢?
首先等待7秒
这不是setInterval,而是setTimeout。
document.getElementById(“x2p”).innerHTML=x2这里的x2超出范围,这里的x2将不被定义。完成,现在怎么办,它仍然不起作用!有什么想法吗?@LordofLogic如果你按下“运行代码片段”按钮并尝试一下,它几乎可以告诉你出了什么问题。@LordofLogic从更简洁开始。“仍然不起作用”是什么意思?它还在崩溃吗?您是否收到错误?这很奇怪,OP甚至提供了一个代码段,然后您将其删除了:)是的,我对代码片段有点陌生,不知道如何修复D:@DrRoach你可以单击“复制代码片段以进行回答”。尝试这样做时,我遇到了一个错误的代码格式错误:S只是暂时保持原样,但承诺将来会做得更好。。说真的,我的坏毛病解决了