哪些标签可以有onClick
功能,哪些不可以?如果有任何我不能包含onClick
函数的地方,为什么不呢?
onClick="func()"
您是否应该遵守任何规则?
答案 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
中查看可以使用哪些元素不支持它的元素的完整列表将是: