哪些HTML标签可以与onClick一起使用?

时间:2014-02-27 16:43:49

标签: javascript jquery html onclick

哪些标签可以有onClick功能,哪些不可以?如果有任何我不能包含onClick函数的地方,为什么不呢?

onClick="func()"

您是否应该遵守任何规则?

4 个答案:

答案 0 :(得分:9)

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

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

(当然,默认情况下不会呈现某些元素,因此您必须先使用CSS更改其display属性,然后才能单击它们以触发事件处理程序。)

答案 1 :(得分:1)

“您有权说:“我有权采取任何措施,但并非所有事情都是有益的”。-使徒保罗,哥林多前书6:12

比较the comments on this post和指向MDN web docs的链接,这强烈暗示着<div><span>之类的元素不应用于点击操作,因为它们“不能固有地代表任何东西”和“仅在没有其他语义元素合适的情况下才应使用它”。

您会看到,虽然实际上可以在任何内容上附加onclick,但某些元素还具有被单击(或防止点击)的支持,而其他元素则没有。

因此,我建议将问题改写为“哪个HTML标签完全支持onClick?”或类似的东西。 <input>是具有全面支持的标签的一个很好的例子,因此<span>并不是。

我也非常想查找“第一等公民”的HTML标签列表,以便更好地选择自己的网络元素。

答案 2 :(得分:-1)

任何元素都可以通过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(); 
)}; 

答案 3 :(得分:-3)

您可以在此sitepoint reference

中查看可以使用哪些元素

不支持它的元素的完整列表将是:

  • applet
  • base
  • basefont
  • bdo
  • br
  • font
  • frame
  • frameset
  • html
  • IFRAME
  • isindex
  • meta
  • param
  • script
  • style
  • 标题