我无法让我的 html 调用我的 js

I can't get my html to call my js

谁能帮帮我?当您单击按钮但没有任何反应时,我试图让它调用 click() 函数。警报用于测试目的,当我可以让它工作时,js 将被导出到外部 js。谢谢=)

    <!DOCTYPE html />

<html>
    <head>
        <title>Idle Numbers</title>

        <link rel="stylesheet" type="text/css" href="stylesheet.css" />
    </head>
    <body>
        <h1>Idle Numbers</h1>
        <p>Number Bank: <span id="numberBank">0</span> | Numbers per Second: <span id="NpS">0</span> | Numbers per Click: <span id="NpC">1</span></p>
        <button onclick="click()">Click me</button>
        <table id="shop">
            <tr>
                <th colspan="4">Shop</th>
            </tr>
            <tr>
                <td><p>Ones Place <button onclick="onesPurchase" id="buyOnes">25</button></p></td>
                <td><p>Tens Place <button onclick="tensPurchase" value="100" id="buyTens">100</button></p></td>
                <td><p>Hundreds Place <button onclick="hundredsPurchase"  id="buyHundres">250</button></p></td>
                <td><p>Thousands Place <button onclick="ThousandsPurchase" id="buyThousands">2500</button></p></td>
            </tr>
        </table>
        <script type="text/javascript">
            var nB, NpS, onesValue, tensValue, hundredsValue, thousandsValue;
            var NpC = 1;

            function click(){
                alert("numberBank");
                numberBank = nB + NpC;
                alert("numberBank");
                document.getElementById("numberBank").innerHTML = nB;
            }
        </script>
    </body>
</html>

您没有为 onesPurchase、tensPurchase 等定义函数,并在其中初始化了 onclick 处理程序。如果您尝试将 click() 函数绑定到 onclick 处理程序,您只需

<td><p>Ones Place <button onclick="click();" id="buyOnes">25</button></p></td>

参见:Using an html button to call a javascript function

如果您想更改点击函数的行为方式,您可能需要在创建 click() 函数的位置定义某种参数,以确定您正在计算的购买。

此问题是由于将您的函数命名为 click()。默认情况下,此函数名称分配给按钮以处理鼠标单击事件。无论如何最好使用更具描述性的函数名称。

只需更改为 calculate() 即可:

HTML

<button onClick="calculate()">Click me</button>

JS

 function calculate() {
                alert("numberBank");
                numberBank = nB + NpC;
                alert("numberBank");
                document.getElementById("numberBank").innerHTML = nB;
            }

.click() 是 javascript.

中的内置函数

您可以通过更改

来覆盖正常功能
function click(){

click()=function(){

虽然我不推荐它。最好按照 shredMER 的回答更改函数名称。

按钮元素已经有一个 click() 方法,它模拟鼠标点击按钮元素。将调用按钮元素的 click() 方法,而不是您的 click() 方法。正如 shreadMER 建议的那样,将您的 click() 方法重命名为其他名称。例如...

HTML

<button onclick="btn_click()">Click me</button>

JS

function btn_click() {
    alert("numberBank");
    numberBank = nB + NpC;
    alert("numberBank");
    document.getElementById("numberBank").innerHTML = nB;
}