btn.onclick=toggle; btn.onclick=toggle();执行顺序是?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>全选和反选</title>
</head>
<body>
<input type="button" value="全选">
<script>
// 此处填写代码
// debugger;
var btn=document.getElementsByTagName("input")[0];
function toggle(){
console.log(this);
if(this.value=="全选"){
this.value="反选";
console.log("hhh");
}else{
this.value="全选";
console.log("111");
}
}
btn.onclick=toggle;
btn.onclick=toggle();//后面的代码会覆盖前面的吗?那如果换一下顺序,为什么前面的还是可以执行?
</script>
</body>
</html>
正在回答
你好同学,很抱歉老师在回复时,覆盖问题没有编辑上。代码是顺序执行,onclick只能绑定一个事件,所以执行到后面的 btn.onclick=toggle()会覆盖前面的btn.onclick=toggle; 当你点击按钮时,事件toggle()已经自动执行所以点击没有反应。
而btn.onclick=toggle()在前面的时候,因为它会自动执行,所以toggle执行了一次,然后继续执行后面的btn.onclick=toggle;,就把前面的覆盖了,所以当点击时,也是可以的执行toggle的。
因为老师的疏忽,给同学带来的不便请同学谅解,以后老师也会更加细心的为同学们进行答疑。为大家带来更好的体验。
祝学习愉快 ,望采纳。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星