【问题标题】:Which HTML tags can be used with onClick?哪些 HTML 标签可以与 onClick 一起使用?
【发布时间】:2014-02-27 16:43:48
【问题描述】:

哪些 HTML 标签可以包含onclick 事件,哪些不能?如果有些标签我不能包含 onclick 事件,我想知道为什么不包含?

onclick="func()"

有什么你应该遵守的规则吗?

【问题讨论】:

  • 附带说明,您应该避免使用内联javascript...

标签: javascript jquery html onclick dom-events


【解决方案1】:

所有 HTML 元素都可以有一个onclick 属性。

请参阅the HTML 5 specification 进行确认。

(当然,有些元素默认不渲染,因此您必须先用 CSS 更改它们的 display 属性,然后才能点击它们以触发事件处理程序)。

【讨论】:

  • 在 html 或标题标签中包含 onClick 是荒谬的,但我可以这样做吗?
  • 是的,您可以这样做,但不建议这样做,因为它很突兀。
  • 这不是荒谬的。呈现 html 元素,因此您可以将事件处理程序绑定到它以在单击文档的任何部分时触发(如果您想生成页面的热图,这非常有用,尽管我倾向于直接绑定在 @ 987654324@本人反对)。让标题可点击有点奇怪,但样式表中的head, title { display: block; } 将使它成为可能。
  • @TylerH,那么有哪些元素是推荐且不突兀的?
  • @Dan 大多数人都低于<body>,坦率地说。
【解决方案2】:

'“我有权做任何事,”你说 - 但并非一切都是有益的' - 使徒保罗,哥林多前书 6:12

比较the comments on this post 和生成的MDN web docs 链接,这强烈暗示<div><span> 等元素不应用于点击操作,因为它们“本质上不代表任何东西”和“它只有在没有其他语义元素是合适的时候才应该使用。”

您会看到,虽然几乎可以将onclick 附加到任何东西,但某些元素可以进一步支持被点击(或者更确切地说,阻止点击),而其他元素则不能。

因此,我建议将问题重新表述为“哪些 HTML 标记完全支持 onClick?”或类似的东西。 <input> 将是完全支持的标记的一个很好的例子,因此 <span> 不会。

我也非常想找到一个“一流点击公民”的 HTML 标记列表,这样我就可以更好地选择我的网络元素。

【讨论】:

    【解决方案3】:

    任何元素都可以通过 ID 或类产生 onclick 事件。 使用 jQuery,这很容易:

    // Talk to any element with a unique ID of "myElementId".
    $('#myElementId').on('click', function(event){
        alert('CLICK');
        // do something else.
        event.preventDefault();
    });
    
    // Talk to any element with a class of "myClassElement".
    $('.myClassElement').on('click', function(event){
        alert('CLICK');
        // do something else.
        event.preventDefault();
    }
    
    // Talk to the <header> element.
    $('header').on('click', function(event) {
        alert('CLICK');
        // do something else.
        event.preventDefault(); 
    )}; 
    

    【讨论】:

    • 我认为,他在谈论 HTML 标签,而不是元素类或 id
    • 我强烈建议不要在你的 html 中混合你的 js,尽可能在你的 html 中添加一个“onClick”属性。链接到外部 js 文件 - 挂钩到您的标记是滚动的理想方式。以上是你将如何做到这一点。
    • 编辑:我更新了 js 以展示如何直接与元素对话。在与之交谈之前,请确保您的相关元素已加载并且可用。否则,什么都不会发生。在 onready 语句中使用这些调用(或在您的 html 底部)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2011-01-27
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多