以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
当前回答
2019年1月编辑
在HTML5中,使用没有href属性的a元素是有效的。它被认为是“占位符超链接”
如果a元素没有href属性,则该元素表示一个占位符,如果链接是相关的,则该占位符可能是放置链接的位置,仅包含元素的内容。
例子:
<a>previous</a>
如果在此之后,您希望执行其他操作:
1-如果你的链接不到任何地方,不要使用<a>元素。使用<span>或其他合适的工具,并添加CSS:hover以根据您的需要设置其样式。
2-使用javascript:void(0)OR javascript:undefined OR javascript:;如果你想要原始、精确和快速。
其他回答
不要忽视这样一个事实,即您的URL可能是必需的——在引用之后会触发onclick,因此有时您需要在导航离开页面之前处理客户端的某些内容。
这里实际上有四种选择。
使用return false;允许您保留锚版本,以防在禁用JavaScript的浏览器中出现安全的“回退”,或者用户代理不支持(现在用户的1-5%)。如果脚本失败,可以使用锚定符“#”、空字符串或href的特殊URL。请注意,您必须使用href,以便屏幕读者知道它是一个超链接。(注意:我不会讨论删除href属性的问题,因为这一点在这里没有意义。锚上没有href意味着锚不再是一个超链接,而只是一个html标记,上面有一个被捕获的点击事件。)
<a href="" onclick="alert('hello world!');return false;">My Link</a>
<a href="#" onclick="alert('hello world!');return false;">My Link</a>
<a href="MyFallbackURL.html" onclick="alert('hello world!');return false;">My Link</a>
下面是目前在href属性中使用javascript:void(0)的更流行的设计。如果浏览器不支持脚本,则应再次将其发布回页面,因为href超链接路径返回了一个空字符串。如果您不关心谁支持JavaScript,请使用此选项。
<a href="javascript:void(0);" onclick="alert('hello world!');">My Link</a>
除非您使用JavaScript编写链接(这样您就知道它在浏览器中已启用),否则理想情况下,您应该为禁用JavaScript的浏览者提供适当的链接,然后在onclick事件处理程序中阻止该链接的默认操作。这样,启用JavaScript的用户将运行该功能,而禁用JavaScript的用户则将跳转到适当的页面(或同一页面中的位置),而不是只单击链接而不发生任何事情。
我强烈希望尽可能将JavaScript排除在HTML标记之外。如果我使用<a>作为单击事件处理程序,那么我建议使用<a class=“trigger”href=“#”>单击我</a> 。
$('.trigger').click(function (e) {
e.preventDefault();
// Do stuff...
});
需要注意的是,许多开发人员认为,使用锚标记来处理点击事件是不好的。他们希望您使用带有一些CSS的<span>或<div>来添加游标:指针;这是一个争论不休的问题。
您可以在这里使用javascript:void(0),而不是使用#来停止锚标记重定向到标头部分。
function helloFunction() {
alert("hello world");
}
<a href="javascript:void(0)" onclick="helloFunction();">Call Hello Function</a>