js知识。请问各位大佬靓仔美女们,为什么下面这段代码运行后,我还没有点击文字,就自动执行了AABBCCD()函数?

zhangchanggong00 2024-02-14 15:55:31

请问为什么下面这段代码运行后,我还没有点击文字,就自动执行了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>


这到底是为什么?
...全文
1910 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1

第一分段就是页面自动加载,第二分段才是触发onclink

tjficcbw 02-14
  • 打赏
  • 举报
回复 1
<h1 id="222" class="222">0000</h1>
<h2 class="2221" onclick= AABBCCD()>点击文本!</h2>
 
<script>
 
function AABBCCD() {
 
document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
 
}
 
</script>

```javascript
tjficcbw 02-14
  • 打赏
  • 举报
回复 1

0000

点击文本!

因为脚本里面的是直接执行的,

原子星 02-14
  • 打赏
  • 举报
回复 1

document.getElementsByClassName("2221")[0].onclick = AABBCCD();
这句错了
要把AABBCCD后面的括号去掉,加上括号相当于直接调用了AABBCCD方法:

document.getElementsByClassName("2221")[0].onclick = AABBCCD;
  • 举报
回复
@原子星 好的,谢谢您
  • 打赏
  • 举报
回复 1

球球,大佬们帮帮孩子。

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧