函数没有被调用

function is not being called

本文关键字:调用 函数      更新时间:2023-09-26

我试图创建一个鬼像在吃豆人(这是一个图像),将出现在随机位置。这是我的代码

function ghost(){
        while (true){
        e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
        document.body.appendChild(e1);
        }
        }
<body  onload="gameLoop();" onkeydown="" onkeyup="moveSelection(event)"  onload="ghost();">

我想让它无限并排运行

你不能在Javascript中编写这样的无限循环,因为它将永远运行,阻止浏览器做任何其他事情,从而有效地"挂起"浏览器,直到浏览器最终终止脚本。主Javascript在浏览器中的执行是单线程的,因此,如果你永远这样循环,那么其他任何东西都不能运行。

相反,您可以使用setInterval()计时器来随时间更新位置。如果你能用语言准确地描述你想要完成的任务,我们可能会更具体地帮助你推荐代码。

此外,您只能在body标签上有一个onload属性,因此您可以从一个属性调用两个函数,或者创建一个调用多个事物的新函数,并在onload属性中引用该新函数。

下面是setInterval()的简单用法:

// something must set the e1 variable first
document.body.appendChild(e1);         
setInterval(function() {
    e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
}, 5000);

注意,根据你的代码,这将导致图像只是在屏幕上跳跃到随机上下位置。