我以前是这样做href="#"
的,但有没有其他方法?
因为单击此类链接有时可以将用户转到所查看页面的前面,我想通过单击链接来加载一些脚本。
继续使用<a href="#">Click</a>
,但使用一些 Javascript/jQuery 来防止页面跳转:
$('a').click(function() {
// do whatever
return false;
}
return false 行将阻止浏览器跟随链接,在这种情况下,这将阻止它跳转到页面顶部。
您应该将链接保留为<a>
标签,而不是使用span
or div
,因为这更具语义(即用户/爬虫将知道它应该做某事,因为它是一个链接)。
您还应该避免使用内联 Javascript(即onclick="doSomething()"
),因为如果您想改变行为,这将是一个巨大的痛苦,并且您还希望使您的 Javascript 尽可能不显眼。
是的,href="#" 让你滚动......
你可以试试:
<a href="javascript:void(0);" onclick="doIt(); return false;">Woho</a>
为什么不使用onclick
<a href="#" onclick="doMyThing() return false;" />
关于 SO, href-tag-for-javascript-links-or-javascriptvoid0 的类似讨论
good markup
如果您想在同一页面上进行活动。所以,如果你使用它div or span
并在上面定义你的,那就更好click event
了。
div{
color:red;
}
JS
$('div').click{function(
)};
href="javascript:void(0)"
谢谢亚尼罗_
正如@Yaniro 评论的那样,您可以使用 href="javascript:void(0)",原因是:
JavaScript 无效 0 解释
Web 浏览器将尝试获取任何用作 URL 的内容并加载它。我们可以在不加载新页面的情况下使用 JavaScript Alert 语句的唯一原因是因为 alert 是一个返回空值的函数。这意味着当浏览器尝试加载新页面时,它会看到 null 并且没有要加载的内容。
这里要注意的重要一点是,如果您确实使用 JavaScript 语句作为返回值的 URL,浏览器将尝试加载页面。为防止这种不必要的操作,您需要在此类语句上使用 void 函数,该函数将始终返回 null 并且永远不会加载新页面。
您可以简单地onclick
在任何元素中使用该属性,例如
<span onclick="foo()">Do something</span>
使用习惯href="#"
是早期浏览器不onclick
普遍支持的保留,仅用于链接(在技术意义上:具有属性的a
元素)。href
那是桥下的水,但旧习惯往往不会消失,特别是如果人们只是在不知道原因的情况下采用它们。
而不是span
,您也可以使用a
。没有任何href
属性,a
元素就没有特殊含义。
根据非破坏性原则,元素应该使用 JavaScript 动态生成,而不是作为页面的静态部分(因为禁用 JavaScript 时,它只会坐在那里,给人一种相关的印象,但不做任何事情)。