首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在调用另一个函数10秒后调用一个函数?

如何在调用另一个函数10秒后调用一个函数?
EN

Stack Overflow用户
提问于 2022-04-27 10:13:52
回答 4查看 76关注 0票数 0

我有两个函数,functionOne()和functionTwo()。

如何在调用functionTwo()结束/之后10秒调用functionOne()?

我希望在单击按钮之后发生functionOne,然后在functionOne结束后10秒后执行functionTwo (无需再次单击按钮/让用户做任何事情!)

看下面我的代码!

代码语言:javascript
复制
<p id="paragraphChange">"Hello World"</p>
<button type="button" id="clickToChangeText" onClick="functionOne()">Click!</button>    

<script>
    
    functionOne() {
        document.getElementById("paragraphChange").innerHTML = "Bye World";
    }

    functionTwo() {
        document.getElementById("paragraphChange").innerHTML = "Jokes I'm still here";
    }
    
</script>

我试着使用setTimeout,但问题是我认为没有'onend‘事件可以用于第一个函数。例:

setTimeout(functionOne.onend,10,000);

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-04-27 10:33:49

最重要的是,您必须使用function functionTwo.关键字function来正确声明您的函数:function functionOne

  1. 这里的the documentation for setTimeout:“全局setTimeout()方法设置一个计时器,它在计时器过期后执行函数。”因此,在计时器完成后,传入要执行的函数。

下面是一些处理这个问题的更多方法。

  1. 缓存您的段落元素和前面的按钮,以便使代码尽可能枯燥。

  1. 将内联JS移动到脚本,并将addEventListner用于para元素

  1. 使用textContent而不是innerHTML,因为您没有添加HTML

代码语言:javascript
复制
// Cache the elements
const para = document.querySelector('#paragraphChange');
const button = document.querySelector('#clickToChangeText');

// Add a listener to the button
button.addEventListener('click', functionOne, false);

// Set the text content of the para element
// and then call the second function with a time out
function functionOne() {
  para.textContent = 'Bye World';
  setTimeout(functionTwo, 5000);
}

// Update the para with new text
function functionTwo() {
  para.textContent = 'Jokes I\'m still here';
}
代码语言:javascript
复制
<p id="paragraphChange">"Hello World"</p>
<button type="button" id="clickToChangeText">Click!</button>

票数 0
EN

Stack Overflow用户

发布于 2022-04-27 10:17:55

此代码调用functionOne onClick,10秒后调用functionTwo

代码语言:javascript
复制
<p id="paragraphChange">"Hello World"</p>
<button type="button" id="clickToChangeText" onClick="functionOne()">Click!</button>        
   
<script>
    
    function functionOne() {
        document.getElementById("paragraphChange").innerHTML = "Bye World";
        setTimeout(() => functionTwo(), 10000);
    }
    
    function functionTwo() {
        document.getElementById("paragraphChange").innerHTML = "Jokes I'm still here";
    }   
</script>
票数 1
EN

Stack Overflow用户

发布于 2022-04-27 10:25:05

我不认为在JavaScript中有什么叫做setTimeout(functionTwo, 10000)的东西,您必须在functionOne()的末尾使用setTimeout(functionTwo, 10000),如下所示:

代码语言:javascript
复制
function functionTwo() {
    //code to be execute
}

function functionOne(){
    //code to be execute
    
    //End of function
    setTimeout(functionTwo, 10000);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72027021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档