gpt4 book ai didi

javascript - 如何停止函数运行,直到它们被 javascript 调用

转载 作者:行者123 更新时间:2023-11-28 18:28:31 25 4
gpt4 key购买 nike

我有一个包含函数的数组:var ranArray = [funct1(), funct2()] 以及函数本身:

function funct1() {
document.write("hello");
};
function funct2() {
document.write("hi");
};

我试图做到这一点,以便每当按下按钮时,都会执行 funct1 或 funct2。然而,我什至没有按下按钮,在页面上我就看到了我的按钮和“hellohi”。这是随机化的函数:

function getFunctions() {
return ranArray[Math.floor(Math.random * ranArray.length)];
};

这是 HTML:

<button type="button" name="ranButton" id="ranButton" onclick="getFunctions();">Random Button</button>

最佳答案

首先您需要存储函数引用([funct1, funct2]),() 将立即调用函数。接下来,您可以使用 .call() 来调用该函数,或者更简单地在 ranArray[Math.floor(Math.random( ) * ranArray.length)] 正如 @jfriend00 提到的。另请注意,Math.random 需要为 Math.random()

var ranArray = [funct1, funct2];

function funct1() {
document.write("hello");
};
function funct2() {
document.write("hi");
};

function getFunctions() { // Note you don't really need a 'return' here
return ranArray[Math.floor(Math.random() * ranArray.length)]();
};

Demo

<小时/>

这里使用 document.write() 会覆盖 DOM。所以我不推荐它,而是您可能想将此内容放置在元素内。如果您有 id #foo 的某个元素,您可以设置该 DOM 元素的文本:

document.getElementById("foo").textContent = "...";

Demo 2

关于javascript - 如何停止函数运行,直到它们被 javascript 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38604217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com