document.getElementById("myButton2").onclick = buttonAlert; 放的位置問什么會對代碼執行效果有影響
<html>
<head>
<title>onclick</title>
<script type="text/javascript">
function buttonAlert(){
alert("you clicked the button");
//document.getElementById("myButton2").onclick = buttonAlert;
//為什么把這句放外面就無效了,放在這里有效
}
document.getElementById("myButton2").onclick = buttonAlert;
//函數名后不能有括號,否則,就先執行buttonAlert()函數并賦值給onClick
</script>
</head>
<body>
<input type="button" id="myButton1" value="myButton1" onClick="buttonAlert()" />
<input type="button" id="myButton2" value="myButton2" />
</body>
</html>
2016-04-11
JS是直譯型執行語言,就是按順序一句一句執行下來,你的js放在了body的前面,瀏覽器還未渲染好body時你就通過js去找一個id=myButton2的按鈕,這是找不到的。找不到還怎么添加屬性事件。然后你放在函數內部的時候,當你點擊第一個按鈕時,html文檔已經渲染好了,能找到id=myButton2的按鈕,能添加事件。所以有效
2016-04-11
因為 你在給btton2 添加 onclick 時 實際先進行的添加方法并沒有找到 ID,
只要將 JS部分 放在 body? 尾部? 或者 在 JS內容上 加上? window.onload=function(){??????js?內容?????????? }就可以解決,??? 是執行順序的問題??
2016-04-11
同小白,剛才試了一下,放在外部一樣好使啊。
2016-04-11
放在外面不是在函數內部啊