[英]Prevent executing JS function on page load
我试图在单击按钮时执行foo
函数,如何防止加载脚本运行,对此问题感到抱歉,这是一个交互式代码,我的目标是在单击按钮后运行该函数,然后显示一些包含数据的divs
。 谢谢!
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.