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

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

or

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


当前回答

为什么不使用这个?这不会向上滚动页面。

<span role="button" onclick="myJsFunc();">Run JavaScript Code</span>

其他回答

2019年1月编辑

在HTML5中,使用没有href属性的a元素是有效的。它被认为是“占位符超链接”

如果a元素没有href属性,则该元素表示一个占位符,如果链接是相关的,则该占位符可能是放置链接的位置,仅包含元素的内容。

例子:

<a>previous</a>

如果在此之后,您希望执行其他操作:

1-如果你的链接不到任何地方,不要使用<a>元素。使用<span>或其他合适的工具,并添加CSS:hover以根据您的需要设置其样式。

2-使用javascript:void(0)OR javascript:undefined OR javascript:;如果你想要原始、精确和快速。

最简单且最为大家所使用的是javascript:void(0)。您可以使用它来代替使用#来停止标记重定向到标题部分。

<a href="javascript:void(0)" onclick="testFunction();">Click To check Function</a>

function testFunction() {
    alert("hello world");
}

我通常会去

<a href="javascript:;" onclick="yourFunction()">Link description</a>

它比javascript:void(0)短,并且做了同样的事情。

4.0之前的引导模式有一个基本上未记录的行为,即它们将使用AJAX从元素加载href,除非它们正好是#。如果您使用的是Bootstrap 3,javascript:void(0);hrefs将导致javascript错误:

AJAX错误:错误GET javascript:void(0);

在这些情况下,您需要升级到引导程序4或更改href。

我强烈希望尽可能将JavaScript排除在HTML标记之外。如果我使用<a>作为单击事件处理程序,那么我建议使用<a class=“trigger”href=“#”>单击我</a> 。

$('.trigger').click(function (e) {
    e.preventDefault();
    // Do stuff...
});

需要注意的是,许多开发人员认为,使用锚标记来处理点击事件是不好的。他们希望您使用带有一些CSS的<span>或<div>来添加游标:指针;这是一个争论不休的问题。