javascript - 功能仅在单击两次时有效
问题描述
在编程方面我是新手,所以我确实有一些基本问题。其中之一,我无法真正解决的是:
我写了一个javascript代码来改变一个按钮点击的div的内容。它工作正常,但仅在第二次单击时。
按钮 html:
<li class="navli"><a class="navbutton" id="home" onclick="navClick(this.id)">Home</a></li>
的JavaScript:
var buttonId = "";
var contentText = "";
function navClick(clicked_id)
{
buttonId = clicked_id;
changeContent();
}
function changeContent(){
fetch("./pages/"+buttonId+".txt")
.then(function(response){
return response.text()
})
.then(function(data){
contentText = data;
})
document.getElementById("content").innerHTML = contentText;
}
解决方案
它看起来像一个异步事故。试试这样:
var buttonId = "";
var contentText = "";
function navClick(clicked_id)
{
buttonId = clicked_id;
changeContent();
}
function changeContent(){
fetch("./pages/"+buttonId+".txt")
.then(function(response){
return response.text()
})
.then(function(data){
contentText = data;
document.getElementById("content").innerHTML = contentText;
})
}
innerHMTML 需要在内部更新then
,否则它可能会在fetch
完成之前运行。我最好的猜测。
推荐阅读
- java - 从 control-m 启动 spring 批处理作业
- node.js - 如何使用 nodeJS 从标准输入读取文件
- html - 填充、边距和背景颜色使移动版本未优化?
- spring - 将 mongodb shell 命令转换为 java 代码
- c++ - 从“if constexpr”分支扩展对象生命周期/范围
- microsoft-graph-api - 应用程序能否动态请求比静态授予的权限更多的权限?
- vba - 如何从 Access 中的对象中获取准确的 LastUpdated 日期/时间?
- c# - 如何诊断崩溃的 UWP 应用程序中的故障
- c++ - 如何在其聚合初始化程序中使用类静态对象的大小?
- html - 移动下划线在标题下方并位于左侧