gpt4 book ai didi

javascript - 防止在页面加载时执行 JS 函数

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

我试图在单击按钮时执行 foo 函数,如何防止在加载时运行脚本,抱歉这个问题,这是一个交互式代码,我的目标是在按钮后运行该函数单击 ,然后显示一些带有数据的 div。谢谢!

<html>
<head>
<title>Bitcoin Price</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>

</head>

<body>

<h1 id="name"></h1>
<p id="cointime"></p>
<div id="dollar"></div>
<div id="gbp"></div>
<div id="euro"></div>
<h6 id="disc" style="width:50%"></h6>

<br>

<button style="width: 200px" onclick="foo()">Load Data</button>

<script>

$.getJSON(
"https://api.coindesk.com/v1/bpi/currentprice.json",
function foo(data)
{
$("#name").append(data.chartName);
$("#cointime").append(data.time.updated);
$("#dollar").append(data.bpi.USD.rate + ' ' + data.bpi.USD.symbol);
$("#gbp").append(data.bpi.GBP.rate + ' ' + data.bpi.GBP.symbol);
$("#euro").append(data.bpi.EUR.rate + ' ' + data.bpi.EUR.symbol);
$("#disc").append(data.disclaimer);
}
)

</script>

</body>
</html>

最佳答案

getJSON 调用包装到函数中,例如refresh,点击按钮时调用refresh函数。

<html>

<head>
<title>Bitcoin Price</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>

</head>

<body>

<h1 id="name"></h1>
<p id="cointime"></p>
<div id="dollar"></div>
<div id="gbp"></div>
<div id="euro"></div>
<h6 id="disc" style="width:50%"></h6>

<br>

<button style="width: 200px" onclick="refresh()">Load Data</button>

<script>
function refresh () {
$.getJSON("https://api.coindesk.com/v1/bpi/currentprice.json", function (data) {
$("#name").append(data.chartName);
$("#cointime").append(data.time.updated);
$("#dollar").append(data.bpi.USD.rate + ' ' + data.bpi.USD.symbol);
$("#gbp").append(data.bpi.GBP.rate + ' ' + data.bpi.GBP.symbol);
$("#euro").append(data.bpi.EUR.rate + ' ' + data.bpi.EUR.symbol);
$("#disc").append(data.disclaimer);
})
}

</script>

</body>

</html>

我建议不要将 HTML 与 JavaScript 混合使用,而是在 JavaScript 端使用 addEventListener 来添加事件:

<html>

<head>
<title>Bitcoin Price</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>

</head>

<body>

<h1 id="name"></h1>
<p id="cointime"></p>
<div id="dollar"></div>
<div id="gbp"></div>
<div id="euro"></div>
<h6 id="disc" style="width:50%"></h6>

<br>

<button style="width: 200px" id="refreshBtn">Load Data</button>

<script>
document.getElementById("refreshBtn").addEventListener("click", function () {
$.getJSON("https://api.coindesk.com/v1/bpi/currentprice.json", function (data) {
$("#name").append(data.chartName);
$("#cointime").append(data.time.updated);
$("#dollar").append(data.bpi.USD.rate + ' ' + data.bpi.USD.symbol);
$("#gbp").append(data.bpi.GBP.rate + ' ' + data.bpi.GBP.symbol);
$("#euro").append(data.bpi.EUR.rate + ' ' + data.bpi.EUR.symbol);
$("#disc").append(data.disclaimer);
})
});
</script>

</body>

</html>

关于javascript - 防止在页面加载时执行 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45802993/

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