我明白了为什么不直接在元素中写onlick属性了

博客指出行内事件处理器不应使用,如<button onclick=\bgChange()\>这种写法。混用HTML和JavaScript会使文档难解析,内置事件处理器在多元素时难以维护。而使用JavaScript可统一添加事件处理器,且将编程逻辑与内容分离对搜索引擎更友好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要原因:便于维护、将您的编程逻辑与内容分离也会使您的站点对搜索引擎更加友好。

 

具体原因概述:

行内事件处理器 - 请勿使用
你也许在你的代码中看到过这么一种写法:

<button onclick="bgChange()">Press me</button>
function bgChange() {
  var rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')';
  document.body.style.backgroundColor = rndCol;
}
Note: 您可以在GitHub上找到这个示例的完整源代码(也可以在线运行).

在Web上注册事件处理程序的最早方法是类似于上面所示的事件处理程序HTML属性(也称为内联事件处理程序)—属性值实际上是当事件发生时要运行的JavaScript代码。上面的例子中调用一个在<script>元素在同一个页面上,但也可以直接在属性内插入JavaScript,例如:

<button onclick="alert('Hello, this is my old-fashioned event handler!');">Press me</button>
你会发现HTML属性等价于对许多事件处理程序的属性;但是,你不应该使用这些—他们被认为是不好的做法。使用一个事件处理属性似乎看起来很简单,如果你只是在做一些非常快的事情,但很快就变得难以管理和效率低下。

一开始,您不应该混用 HTML 和 JavaScript,因为这样文档很难解析——最好的办法是只在一块地方写 JavaScript 代码。

即使在单一文件中,内置事件处理器也不是一个好主意。一个按钮看起来还好,但是如果有一百个按钮呢?您得在文件中加上100个属性。这很快就会成为维护人员的噩梦。使用 Java Script,您可以给网页中的 button 都加上事件处理器。就像下面这样:

var buttons = document.querySelectorAll('button');

for (var i = 0; i < buttons.length; i++) {
  buttons[i].onclick = bgChange;
}
注释: 将您的编程逻辑与内容分离也会使您的站点对搜索引擎更加友好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值