【问题标题】:Do I have to use <a> tag? Can I not just use .click()?我必须使用 <a> 标签吗?我不能只使用 .click() 吗?
【发布时间】:2016-11-12 02:39:17
【问题描述】:

我正在使用 jQuery 和 jQuery mobile,我一直倾向于使用 button/a 标签制作可点击事件

<button id='id'>my button</button>
<a href='#' id='id2'>my anchor</a> 

我在某处读到,这是以前推荐的标准,但此后该限制已被弃用。

我的理解是以下内容不仅可以接受,而且不违反标准

<h1 id="id">abcdef</h1>

<script>
$("#id").click(myFunction);
</script>

我说的对吗?我可以将点击事件应用于我想要的任何标签吗? (我希望/要求我的客户不到 3 岁)

【问题讨论】:

  • 是的,您可以将点击事件附加到其他标签,而不仅仅是 button/a 标签...
  • 那答案然后 =) 谢谢!
  • 是的,您可以将点击事件应用于您想要的任何元素。(如果这是您想知道的)

标签: javascript jquery html click href


【解决方案1】:

虽然您可以将点击事件处理程序附加到大多数元素,但我建议您坚持将它们附加到 abutton 或用户期望的任何其他元素 点击,即。不是table,也不是strong

这有两个原因。首先,因为这是人们所期望的,并且拥有一个用户可以轻松导航和操作而无需考虑他们需要做什么的 UI 是必不可少的。用户不会认为大标题是可点击的,因此最终可能会隐藏一些他们需要使用的功能。

其次,通过将事件保留在标准可点击元素上,您既可以遵守可访问性准则,也可以在 JS 代码无法工作或被客户端浏览器禁用时提供优雅的冗余。

当然也有例外,但作为一般规则,这是我坚持的。

【讨论】:

  • “我建议您坚持将它们附加到 a 和 button 元素。” - 我不同意,还有很多其他元素对点击有很好的用途事件。
  • 好吧,我的措辞不好——我并不是说要详尽无遗。我的观点是,不要将点击处理程序放在 phr 元素上。将它们包裹在一个默认可点击的元素中,然后通过 JS 自己处理事件。
  • 我的 H1 标签只是一个例子——我很可能选择了一个表格、img、span、div 或其他任何东西。我知道我可以,但不确定我是否应该避免这样做。
  • @Spencer Wieczorek 例如:图片
  • 它更适合用户可访问性,因为用户可以使用键盘导航到包含imga 元素(在我们这里的示例中)并按回车键来触发点击事件。如果img 不在a 中,它将无法通过键盘选择,除非您向其添加tabindex,而这更容易忘记。另外我相信在后一种情况下,屏幕阅读器会错过img 是可点击的,但它会识别出它周围的父a
【解决方案2】:

只要它有效,我会说继续做。保持一致即可。

一般来说,我会说是的,您可以将点击事件应用于您想要的任何内容;请记住,尽管此功能因浏览器而异。我似乎记得在我生命中的某个时刻试图让 div 接收点击事件时遇到了很多麻烦。

我更喜欢按钮和锚标签而不是标题标签。锚标签可以被标记并通常描述指向某物的链接。页眉标签通常更多地用于组织页面中的内容,而不是作为交互元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多