JavaScript - 使用onClick和document.getElementByID函数

29

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

我在添加分数的函数里创建了一个简单的 if 语句,它应该改变图片以及它的 onClick 值......

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

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

5个回答

54

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

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

另请参阅addEventListener


18
在JavaScript中,函数是对象。
document.getElementById('foo').onclick = function(){
    prompt('Hello world');
}

6
也许你想要使用"addEventListener"。
document.getElementById("test").addEventListener('click',function ()
{
    foo2();
   }  ); 

希望对你仍然有用


3
window.onload = prepareButton;

function prepareButton()
{ 
   document.getElementById('foo').onclick = function()
   {
       alert('you clicked me');
   }
}

<input id="foo" value="Click Me!" type="button" />

-1
有时候 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=()'。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接