【问题标题】:JavaScript - document.getElementByID with onClickJavaScript - 带有 onClick 的 document.getElementByID
【发布时间】:2014-01-06 00:40:22
【问题描述】:

我试图在 HTML 文档中编写一个简单的游戏只是为了好玩。其中有一张图片,点击后会增加您的分数。

我在得分添加函数中创建了一个简单的if 语句,它应该更改图像以及它的onClick 值是什么...

if (foo == 1) {
    document.getElementById("test").src = "images/test2.png";
    document.getElementById("test").onClick = "foo2()";
}

...但它不起作用。图像将成功更改,但实际的 onClick 保持不变。检查控制台,它也没有抛出任何错误。

【问题讨论】:

    标签: javascript html onclick


    【解决方案1】:

    onclick 属性全部小写,接受一个函数,而不是字符串。

    document.getElementById("test").onclick = foo2;
    

    另见addEventListener

    【讨论】:

      【解决方案2】:

      在 JavaScript 中 functions 是对象。

      document.getElementById('foo').onclick = function(){
          prompt('Hello world');
      }
      

      【讨论】:

        【解决方案3】:
        window.onload = prepareButton;
        
        function prepareButton()
        { 
           document.getElementById('foo').onclick = function()
           {
               alert('you clicked me');
           }
        }
        
        <input id="foo" value="Click Me!" type="button" />
        

        【讨论】:

          【解决方案4】:

          也许您可能想使用“addEventListener”

          document.getElementById("test").addEventListener('click',function ()
          {
              foo2();
             }  ); 
          

          希望它对你仍然有用

          【讨论】:

            【解决方案5】:

            有时 JavaScript 未激活。 尝试类似:

            <!DOCTYPE html>
            <html>
              <head>
            
                <script type="text/javascript"> <!--
                  function jActivator() {
                    document.getElementById("demo").onclick = function() {myFunction()};
                    document.getElementById("demo1").addEventListener("click", myFunction);
                    }
                  function myFunction( s ) {
                    document.getElementById("myresult").innerHTML = s;
                    }
                // --> </script>
                <noscript>JavaScript deactivated.</noscript>
                <style type="text/css">
                </style>
              </head>
              <body onload="jActivator()">
                <ul>
                  <li id="demo">Click me -&gt; onclick.</li>
                  <li id="demo1">Click me -&gt; click event.</li>
                  <li onclick="myFunction('YOU CLICKED ME!')">Click me calling function.</li>
                </ul>
                <div id="myresult">&nbsp;</div>
              </body>
            </html>
            

            如果您在无法访问的页面内使用代码,请删除和标记并尝试在图像标记内的图片中使用'onload =()'

            【讨论】:

              猜你喜欢
              • 2014-02-11
              • 2018-07-27
              • 2010-10-02
              • 1970-01-01
              • 2014-08-24
              • 1970-01-01
              • 1970-01-01
              • 2020-05-01
              • 2016-09-08
              相关资源
              最近更新 更多