gpt4 book ai didi

javascript - 如何通过传递参数在 JavaScript 中设置计时器

转载 作者:行者123 更新时间:2023-11-30 07:50:59 24 4
gpt4 key购买 nike

我正在尝试使用 HTML 输入框设置超时,并将其用作 setTimeout 的参数。

这是一个非常简单的任务,但我不是 JS 开发人员,所以我不确定如何将参数正确传递给箭头函数。

HTML 代码仅由 2 个元素组成。

<button id="myElementId">Click me</button>
<input id="milliseconds" type="number" placeholder="number of milliseconds"/>

我的 JS 代码如下所示:

const clickbutton = document.getElementById('myElementId');
const millis = parseInt(document.getElementById('milliseconds').value, 10);

clickbutton.addEventListener('click', (event) => {
setTimeout(() => { alert("I work");
}, millis); // <-- here I don't want to use a static value
});

但是,我似乎无法从箭头函数内的外部范围获取 millis 的值。

我还尝试传递第二个参数:

const clickbutton = document.getElementById('myElementId');
const millis = parseInt(document.getElementById('milliseconds').value, 10);

clickbutton.addEventListener('click', (event, millis) => {
setTimeout(() => { alert("I work");
}, millis);
});

那里没有运气。

感谢任何帮助。

谢谢。

最佳答案

获取点击事件监听器中的值,否则它未定义(它仅在您在输入中键入内容并决定单击按钮后定义):

const clickbutton = document.getElementById('myElementId');

clickbutton.addEventListener('click', (event) => {
const millis = parseInt(document.getElementById('milliseconds').value, 10);
setTimeout(() => {
alert("I work");
}, millis);
});
<button id="myElementId">Click me</button>
<input id="milliseconds" type="number" placeholder="number of milliseconds" />

关于javascript - 如何通过传递参数在 JavaScript 中设置计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142889/

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