onload直接执行导致onclick事件无法绑定

<!DOCTYPE html>




<body onload="paifa()">
    <input type="button" value="第一次" id="btn1"/>
</body>

<script>
    var cc;

    function paifa()
    {
        cc=document.getElementById("btn1");
        cc.onclick=al();
    }

    function al(){
        alert("demo1");
    }   
</script>
在运行页面的时候直接运行了al方法,导致al无法绑定到按钮中

cc.onclick=al();
这个地方写错了
这么写就是把al的执行结果 undefined返回作为cc的onclick特性

cc.onclick = al
不要加() 加了,就立即执行
function a(){ }//这是一个函数 a 就是函数名,而a() 就是执行函数
cc.onclick =al() 就是以al 的返回值作为点击触发的函数,但是无返回值,也就没有后续了

楼上说的没毛病,把后面的括号去掉,或者你再写个匿名函数,在该函数里面调用a1就可以了