RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1226028
Accepted
rabbit
rabbit
Asked:2021-12-31 19:01:04 +0000 UTC2021-12-31 19:01:04 +0000 UTC 2021-12-31 19:01:04 +0000 UTC

标签内的javascript事件

  • 772

我马上问你,请不要投反对票,因为我需要关于标签内的 js 事件声明的建议。我听到了很多支持者和反对者的意见。有人说在标签内声明事件不是一个好习惯,而另一方则相反。毕竟,在标签中声明事件的后果是什么?!

像这样:

<div onlick="fname()">...</div>

优缺点都有什么?谢谢你。

javascript
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. LeXxyIT
    2021-12-31T19:20:10Z2021-12-31T19:20:10Z

    事实是“支持者和反对者的意见很多”。但总是值得关注“良好实践”。有一定的标准。比如PHP他PSR的。

    一般来说,值得与 进行类比CSS。如果您可以将所有这些内容输出到单独目录中的单独文件中,则不应将样式内联(在标签内)。

    即,<div style="border: 1px solid #ccc;">Content</div>。

    与JavaScript. 不要用这样的插入污染代码。例如,按 ID、类或标签使用选择器。并且已经从脚本中紧贴 DOM 树的必要元素。

    这样的代码更容易为自己和他人维护。代码的清晰和结构是开发人员专业水平的标志。

    我建议您不要使用编写脚本和样式的内联方法。

    • 3
  2. Best Answer
    user347472
    2021-12-31T19:27:12Z2021-12-31T19:27:12Z

    在标签中声明事件的后果:

    1. 该脚本在 JS 中,并且来自该脚本的函数调用在 HTML 中。来回移动可能不方便,也不符合技术分离的思路。HTML 应该用于文档结构,而不是操作。
    2. 标签中只能写一个事件,两个 onClick 事件不能挂在一个标签上。在 JS 中,您可以使用element.addEventListener().
    3. 通过将事件写入标签,您将失去使用 Event 类型的事件对象的能力,该对象提供附加功能。
    4. 您不能删除使用 HTML 写入标签中的事件。原来,如果有必要,你会通过JS删除。问题出现了,为什么它们没有添加到 JS 中的同一个地方。
    5. 通过 JS 克隆元素时,标签中写入的事件将被克隆,而通过 JS 添加事件克隆节点时不会发生这种情况。
    6. 一段 HTML 可用于不同的任务。例如,对其应用不同的脚本或多次使用它制作元素。写在标签中的事件会干扰或复杂化。
    • 3

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5