以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?

函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>

or

函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>


当前回答

不要忽视这样一个事实,即您的URL可能是必需的——在引用之后会触发onclick,因此有时您需要在导航离开页面之前处理客户端的某些内容。

其他回答

我建议改用<button>元素,特别是当控件应该在数据中产生更改时。(类似于POST。)

如果不引人注目地注入元素,这是一种渐进式增强,效果会更好。(请参阅此评论。)

您不应该在HTML中使用inline onclick=“something();”,以避免用无意义的代码污染它;所有单击绑定都必须在Javascript文件(*.js)中设置。

像这样设置绑定:$(“#myAnchor”).click(function(){…**return false**;});或$('#myAnchor').bind('click',function(){…**return false**;});

然后,您就可以轻松加载一个干净的HTML文件(并且seo友好),而无需数千href=“javascript:void(0);”,只需href=“#”

除非您使用JavaScript编写链接(这样您就知道它在浏览器中已启用),否则理想情况下,您应该为禁用JavaScript的浏览者提供适当的链接,然后在onclick事件处理程序中阻止该链接的默认操作。这样,启用JavaScript的用户将运行该功能,而禁用JavaScript的用户则将跳转到适当的页面(或同一页面中的位置),而不是只单击链接而不发生任何事情。

当我有几个人造链接时,我更喜欢给它们一个“没有链接”的类。

然后在jQuery中,我添加了以下代码:

$(function(){
   $('.no-link').click(function(e){
       e.preventDefault();
   });
});

对于HTML,链接简单

<a href="/" class="no-link">Faux-Link</a>

我不喜欢使用哈希标签,除非它们用于锚点,并且只有当我有两个以上的虚假链接时,我才会使用上面的方法,否则我会使用javascript:void(0)。

<a href="javascript:void(0)" class="no-link">Faux-Link</a>

通常情况下,我喜欢完全避免使用链接,只在一个跨度中包装一些东西,并将其用作激活某些JavaScript代码的方式,如弹出窗口或内容显示。

我认为你提出了一个错误的二分法。这不是唯一的两个选项。

我同意D4V360先生的观点,他建议,即使您使用的是锚标记,但这里并没有真正的锚。您所拥有的只是文档的一个特殊部分,其行为应该略有不同。<span>标记更合适。