我需要点击id为test1的元素出现警告框的脚本<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>无标题 1</title>
</head>
<body>
<a id="text1">smile</a>
<script language="javascript">
odiv = document.getElementById("text1");
odiv.onclick = test1();
function test1(){
alert("Notebook");
}
</script>
</body>
</html>运行这个文件打开浏览器就会出现警告框
而脚本改成如下就正常了<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>无标题 1</title>
</head>
<body>
<a id="text1">smile</a>
<script language="javascript">
odiv = document.getElementById("text1");
odiv.onclick = function test1(){alert("Notebook");}
</script>
</body>
</html>这两段代码看着是没什么区别,为什么执行结果不一样

解决方案 »

  1.   


    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>无标题 1</title>
    </head>
    <body>
    <a id="text1">smile</a>
    <script language="javascript">
    odiv = document.getElementById("text1");
    odiv.onclick = test1();
    function test1(){
        alert("Notebook");
    }
    </script>
    </body>
    </html>1.在使用之前需要定义,odiv.onclick = test1();用到函数test1,但在这个语句前未定义test1。
    2.事件应该是个函数,odiv.onclick = test1();执行的结果是odiv.onclick=undefined,如果test1已经定义,那么可以改为odiv.onclick=test1;
      

  2.   

    function test1(){alert("Notebook");}相当于 var test1 = function(){alert("Notebook")}
    第一种写法odiv.onclick = test1();就应该写成odiv.onclick = test1点击触发的是一个函数而不是函数的返回值。