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