87,914
社区成员
发帖
与我相关
我的任务
分享
请问为什么下面这段代码运行后,我还没有点击文字,就自动执行了AABBCCD()函数?
<h1 id="222" class="222">0000</h1>
<h2 class="2221">点击文本!</h2>
<script>
document.getElementsByClassName("2221")[0].onclick = AABBCCD();
function AABBCCD() {
document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
}
</script>
如果,在AABBCCD()外面添加function(){}包裹,那就点击之后再执行AABBCCD函数,这才正常。
<h1 id="222" class="222">0000</h1>
<h2 class="2221">点击文本!</h2>
<script>
document.getElementsByClassName("2221")[0].onclick =function(){AABBCCD()};
function AABBCCD() {
document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
}
</script>
这到底是为什么?
第一分段就是页面自动加载,第二分段才是触发onclink
<h1 id="222" class="222">0000</h1>
<h2 class="2221" onclick= AABBCCD()>点击文本!</h2>
<script>
function AABBCCD() {
document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
}
</script>
```javascript
因为脚本里面的是直接执行的,
document.getElementsByClassName("2221")[0].onclick = AABBCCD();
这句错了
要把AABBCCD后面的括号去掉,加上括号相当于直接调用了AABBCCD方法:
document.getElementsByClassName("2221")[0].onclick = AABBCCD;
球球,大佬们帮帮孩子。