Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 触发javascript的链接的最佳实践是什么_Jquery_Html_Hyperlink - Fatal编程技术网

Jquery 触发javascript的链接的最佳实践是什么

Jquery 触发javascript的链接的最佳实践是什么,jquery,html,hyperlink,Jquery,Html,Hyperlink,假设我有一个触发一些javascript的标签。例如: HTML: <a href="#" id="some_id">Trigger action!</a> <!-- or, with appripriate CSS : --> <span id="some_other_id">Trigger action!</span> $("#some_id").click(function() { alert("some action")

假设我有一个触发一些javascript的标签。例如:

HTML:

<a href="#" id="some_id">Trigger action!</a>
<!-- or, with appripriate CSS : -->
<span id="some_other_id">Trigger action!</span>
$("#some_id").click(function() {
   alert("some action") 
});
我如何才能最好地做到这一点

我的问题是,当我将鼠标悬停在链接上时,我应该在浏览器的左下角看到什么?例如,href值应该是多少

如果响应为“无”,则正确的方法是使用span


一些方法的例子:

关于这一点有很多理论。地雷:

  • a
    标记只应在链接到内容时使用。在这种情况下,应该有一个有效的href。在链接内容加载到页面上的情况下(模态、ajax等),JS将超越href并完成它的工作

  • 页面级交互(按钮、可点击图标等)不应该是链接,因为没有JavaScript,它们就没有任何用途。在这种情况下,它们应该使用与
    a
    不同的标记

当然,我自己总是违反这些规则

从技术上讲,在大多数浏览器中,
href=“#”
会导致页面滚动到顶部。如果你使用这个,那么你必须小心总是超过你的JS中的href…这很容易忘记。因此,对于纯javascript交互
a
标记,我建议使用
href=“javascript:;”
两种情况:

  • 如果您有一个可在关闭javascript的情况下使用的回退功能(例如,在覆盖中打开的登录表单也可以作为常规页面打开),则使用指向该页面的
    链接,并单击onclick触发覆盖/javascript操作

  • 如果是没有回退的元素,则不要使用
    (例如触发内联编辑器的内容)

但无论您做什么,都不要使用
,因为用户将其视为链接的“url”,这可能会让人困惑


至于
,我也不推荐它(即使它被广泛使用),因为正如前面提到的,它并不指向真实的位置


在这种情况下使用
的唯一好处是,您可以得到一个手动光标,但您可以在CSS中使用
光标:指针
,将光标放在非
元素上。

这取决于您是在做网页还是web应用程序

如果你正在做一个网页,试着让链接为那些没有启用JavaScript的人做一些有用的事情。通过这种方式,JavaScript增强了页面,而不是使其工作所必需的。这就是所谓的。例如:假设您有一个页面,并且希望它具有选项卡。将选项卡按顺序放入元素中,并为每个选项卡的元素指定一个
id
值。将您带到这些选项卡的导航链接在其片段中具有
id
值(例如,
#movies
将您带到
movies
元素-浏览器为您执行此操作)。然后,当您的JavaScript加载时,让它将这些元素转换为选项卡,并接管这些链接的操作


如果您正在执行web应用程序,并且该链接会触发UI中的“页面更改”或“选项卡更改”类型的更改,请将其作为链接保留,并将
href
作为一个片段(例如,
#movies
)来描述应用程序在发生更改时切换到的“页面”或“选项卡”。您甚至可以在处理链接时使用这些信息,也可以在最初加载页面时使用这些信息,这样您的各种页面状态都可以链接。如果“链接”不会导致应用程序中的位置样式发生更改,则大多数情况下会将其改为按钮(您可以在很大程度上设置
按钮
元素的样式,尽管我不会使它们看起来像链接)。

a
是可以的,StackOverflow使用它们作为“标志”和“关闭”的示例你的问题下面有按钮。退一步的意思是
,在
你的浏览器doesnotsupportjavascript.html
上,请告知用户他们使用的是一个需要拍击的陈旧浏览器。如果没有javascript,页面根本无法运行,我会使用带有粗体红色文本的陈旧浏览器:)
好。然而,这样你就不会有“断开”的链接。该链接将被单击,尽管用户在预期离开时没有被抓到,但按钮的功能与预期相同,您将进入一个页面。这让用户感觉信息更灵通,而不是坐在椅子上说“这个网站糟透了!链接根本不起作用!”我的意思是使用
,而不是使用你建议的“yourbrowserdoesnotupportjavascript.html”的链接。正如我在回答中提到的,不指向实际位置的可交互元素不应该使用
标记。这是一个
IMHO
语句。。充其量。