杰士派 2017-11-16 07:58 采纳率: 100%
浏览 2694
已采纳

我这个简单的原生js中Button的onclick事件为什么不响应?

没有window.onload事件,为什么Button的onclick事件就不响应?如下:
<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <script>
        //      window.onload=function(){
        document.getElementById("button1").onclick = function() {
                alert("点击成功");
            }
        //          }
    </script>
</head>

<body>
    <input type="button" value="点击跳转" id="button1" />
</body>

  • 写回答

10条回答 默认 最新

  • xiaozhuai7 2017-11-16 08:07
    关注

    js脚本解释时,元素button1还没有加载出来,因此事件实际没用绑定上。你可以实际绑定放到这里。

     window.onload=function(){
    
     }
    

    或者不用这个的话,你可以把整个标签挪到元素后面,例如常见的做法是把内嵌js放到body的最后。<br> 像这样:</p> <pre><code> &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;input type=&quot;button&quot; value=&quot;点击跳转&quot; id=&quot;button1&quot; /&gt; &lt;script&gt; document.getElementById(&quot;button1&quot;).onclick = function() { alert(&quot;点击成功&quot;); } &lt;/script&gt; &lt;/body&gt; </code></pre>

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 善良勤劳勇敢而又聪明的老杨 Java领域优质创作者 2017-11-16 08:08
    关注

    你应该把JS代码放在button元素之后,因为你这个页面元素在执行的时候为null。你按我说的试试

    评论
  • xiaozhuai7 2017-11-16 08:08
    关注

    上面的回答没编辑好,不好意思。重新打一次。

    js脚本解释时,元素button1还没有加载出来,因此事件实际没用绑定上。你可以实际绑定放到这里。

      window.onload=function(){
    
     }
    

    或者不用这个的话,你可以把整个标签挪到元素后面,例如常见的做法是把内嵌js放到body的最后。 像这样:

     <head>
       <meta charset="UTF-8">
       <title></title>
    </head>
    
    <body>
       <input type="button" value="点击跳转" id="button1" />
       <script>
           document.getElementById("button1").onclick = function() {
                   alert("点击成功");
           }
       </script>
    </body>
    
    评论
  • 子幽 2017-11-16 08:10
    关注
            document.getElementById("button1").on('click ',function() {
                   alert("点击成功");
           })
    
    评论
  • 宅菌子丷 2017-11-16 08:45
    关注

    恩,js的函数预解析。
    我好像这块也不清楚,回去复习一下

    评论
  • 旺仔520 2017-11-16 09:09
    关注

    你应该好好了解一下window.onload再来提问

    评论
  • qq_37257422 2017-11-16 09:14
    关注

    js标签最好在body末尾处添加,你这样html元素没有加载完毕就执行js逻辑是不行的

    评论
  • 狗子猴子驴子 2017-11-16 11:46
    关注

    你这样写不太可行 把js写后边 html的写前边 原因就不多说了 楼上都说完了

    评论
  • _Martini_ 2017-11-16 16:09
    关注

    点击事件属于DOM事件,需要页面加载完成,默认情况下浏览器解析完所有的DOM结构才能执行,也可以使用页面加载事件,提前生效

    评论
  • 杰士派 2017-11-17 05:11
    关注

    谢谢各位了!解决问题了!

    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 k210显示failed init to model
  • ¥15 Evil-droid生成的APK手机已经下载但无法建立任务
  • ¥25 c语言韩信点兵的变式
  • ¥15 怎么根据书上的例子完成这个问题呢?
  • ¥15 ECharts 增加Zoom,整行包括右边的Text一起滑动
  • ¥15 关于网上一个easyx制作的见缝插针小游戏(c++)
  • ¥15 开地址法双散列函数处理碰撞
  • ¥15 想问一下这个是什么情况 虚拟机Linux打不开了
  • ¥15 联通光猫掉注册了怎么重新注册上去
  • ¥15 关于unity开发steamvr程序遇到的问题