我在jquery上相当不错,但我正在做一些我想要非常基于标准的东西。我一直遇到的问题是。用于绑定到click事件的html标记。按钮,跨度,锚标签,div或其他东西。第一。我可以使用href =“#”放置一个锚标签,但是当你点击它时它会显示在网址中。我不知道为什么会困扰我,但确实如此。
是否有任何速度优势超过另一个,或者是否有一个标准的原因,你可以选择一个按钮覆盖锚标签或跨越该情况。
欣赏建议。是否有一个地方有一个很好的标准做法清单,任何人都可以指点我?我搜索过,每个人似乎都有不同的方法。
答案 0 :(得分:2)
我不认为有一个元素应该处理点击事件的指定标记。例如,在点击时显示子菜单的菜单应使用< ul>和< li>标签,而表单验证按钮将由< button>表示。元件。
通常我会尝试使用与我向用户展示的含义最相关的元素。
答案 1 :(得分:1)
我会说不幸的是,这有点开放。基本上我会总结答案:
将您的点击事件绑定到最适合用户体验的内容/为最终用户提供最佳易用性,而无需进行额外的样式设置,例如使div看起来像按钮。
据说大多数用户都希望点击按钮或锚点,并且点击其他元素的自动本能较少。为了使锚点看起来更漂亮,您可以使用与您正在进行的操作近似的虚假链接,然后进行event.PreventDefault()
调用。
答案 2 :(得分:1)
你应该做任何最好的语义工作。
在给定的背景下有什么意义?有时按钮是最好的解决方案,有时它是一个锚链接。
在单页应用程序中,您仍然使用链接,即使您实际上并未发送任何请求。但是你想要坚持使用它们,因为它们对用户有意义,因为他们知道链接用于浏览你的网站 - 改变你的浏览器历史记录。
当你想要发生与导航无关的事情时,应该使用按钮,比如打开模态,过渡功能等等。
话虽如此,你可以做任何你想做的事! HTML只不过是语义。毕竟,浏览器会解释HTML的含义,而您无能为力。没有技术上的理由不这样或那样做。
答案 3 :(得分:1)
尝试使用最合理的HTML元素进行您尝试的操作,这是语义HTML。
例如,如果是动作,则使用按钮,如果是导航则使用锚标记。
对于您的锚标记,也许您执行点击事件的方式更多的是尝试这样做以防止#出现在网址中。
$('.myanchor').click(function(event){
event.preventDefault();
// do something.
});