Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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,我有两个js文件,都由一个HTML文件调用 <script type="text/javascript" src="scripts/levelmovement.js"></script> <script type="text/javascript" src="scripts/generation.js"></script> 整个generation.js: var generatedtop; var howtogentop = 'gen'; va

我有两个js文件,都由一个HTML文件调用

<script type="text/javascript" src="scripts/levelmovement.js"></script>
<script type="text/javascript" src="scripts/generation.js"></script>
整个generation.js:

var generatedtop;
var howtogentop = 'gen';
var howtogenbottom = 'gen';
var chunktogenerate = 0;

function topGen(g){
    document.getElementById('t' + chunktogenerate).setAttribute('src','images/terrain/t' + g + '.png');
    if(g == 'gap0'){
        howtogentop = 'gap';
    }
    else{
        howtogentop = 'gen';
    }

    if(g == 'gap0' || g == 'gap2'){
        generatedtop = 'gap';
    }
    else{
        generatedtop = 'default';
    }
}

function bottomGen(g){
    document.getElementById('b' + chunktogenerate).setAttribute('src','images/terrain/b' + g + '.png');
    if(g == 'gap0'){
        howtogenbottom = 'gap';
    }
    else{
        howtogenbottom = 'gen';
    }
}

function generate(chunknum){
    chunktogenerate = chunknum;
    var rand1 = Math.floor(Math.random()*100)+1;
    var rand2 = Math.floor(Math.random()*100)+1;
    if(howtogentop == 'gen'){
        if(rand1 <= 25){
            topGen('space');
        }
        if(rand1 <= 50 && rand1 > 25){
            topGen('jump');
        }
        if(rand1 <= 75 && rand1 > 50){
            topGen('slide');
        }
        if(rand1 > 75){
            topGen('gap0');
        }
    }
    if(howtogentop == 'gap'){
        topGen('gap2');
    }

    if(howtogenbottom == 'gen'){
        if(generatedtop == 'gap'){
            if(rand2 <= 33){
                bottomGen('space');
            }
            if(rand2 <= 66 && rand2 > 66){
                bottomGen('jump');
            }
            if(rand2 > 66){
                bottomGen('gap0');
            }
        }
        if generatedtop != 'gap'){
            if(rand2 <= 25){
                bottomGen('space');
            }
            if(rand2 <= 50 && rand2 > 25){
                bottomGen('jump');
            }
            if(rand2 <= 75 && rand2 > 50){
                bottomGen('jump');
            }
            if(rand2 > 75){
                bottomGen('gap0');
            }
        }
    }
    if(howtogenbottom == 'gap'){
        bottomGen('gap2');
    }
}

浏览器似乎看不到“generate()”函数,我不知道为什么…

这是因为您在定义函数之前调用了它。更改加载js文件的顺序应该可以解决这个问题

<script type="text/javascript" src="scripts/generation.js"></script>
<script type="text/javascript" src="scripts/levelmovement.js"></script>

这是因为您在定义函数之前调用了它。更改加载js文件的顺序应该可以解决这个问题

<script type="text/javascript" src="scripts/generation.js"></script>
<script type="text/javascript" src="scripts/levelmovement.js"></script>

此行:

if generatedtop != 'gap'){
缺少一个括号。正确答案是:

if(generatedtop != 'gap'){
这一行:

if generatedtop != 'gap'){
缺少一个括号。正确答案是:

if(generatedtop != 'gap'){

我来到这一页是为了寻找一个类似问题的解决方案。虽然本页没有直接帮助,但给出了解决问题的方向

发生这种情况的实际原因如下:

当你在一个js文件(比如file1.js)中有一个函数,你在另一个js文件(比如file2.js)中调用该函数时,即使它们在同一个html页面上被调用,如果整个file1.js中有任何js错误,该函数也不会工作,就像如果有错误,整个js文件根本不包括在内

因此,解决方案是清除包含在所有js文件中的所有js错误


希望这对某人有所帮助。

我来到这个页面,是为了寻找一个类似问题的解决方案。虽然本页没有直接帮助,但给出了解决问题的方向

发生这种情况的实际原因如下:

当你在一个js文件(比如file1.js)中有一个函数,你在另一个js文件(比如file2.js)中调用该函数时,即使它们在同一个html页面上被调用,如果整个file1.js中有任何js错误,该函数也不会工作,就像如果有错误,整个js文件根本不包括在内

因此,解决方案是清除包含在所有js文件中的所有js错误


希望这对某人有所帮助。

尝试将
generation.js
script标记放在
levelmovement.js
脚本之前tag@MarkLinus那没用(然后看看你是否在
generate
函数中调用了一个不存在的函数我只是希望它不是打字错误…@MarkLinus我检查过了…我只调用了两个函数,都是在generate.js中定义的。试着把
generation.js
脚本标记放在
levelmovement.js
脚本之前tag@MarkLinus那没用(然后看看你是否在调用
generate
函数中不存在的函数我只是希望它不是打字错误…@MarkLinus我检查过了…我只调用了2个函数,都是在generate.js中定义的。但是我的“游戏”中的每个函数都只在window.onload或之后运行,但我的“游戏”中的每个函数只在window.onload或之后运行谢谢!你的a救命稻草!(该死的,它是一个打字错误…)现在可以工作了。:)谢谢!你的a救命稻草!(该死的,它是一个打字错误…)现在可以工作了。:)