我习惯做href="#"
,但还有其他办法吗?
因为点击这种类型的链接有时可以将用户转到查看页面的前面,我想通过点击链接加载一些脚本。
答案 0 :(得分:2)
继续使用<a href="#">Click</a>
,但使用一些Javascript / jQuery来阻止页面跳转:
$('a').click(function() {
// do whatever
return false;
}
返回false行将阻止浏览器跟踪链接,在这种情况下,它将阻止它跳转到页面顶部。
您应该将链接保留为<a>
标记,而不是使用span
或div
,因为这更具语义性(即用户/抓取工具会知道它应该做什么因为它是一个链接,所以。
您还应该避免使用内联Javascript(即onclick="doSomething()"
),因为如果您想要更改行为,并且您还希望将Javascript设置为unobtrusive as possible,则会非常痛苦。
答案 1 :(得分:1)
是的,href =“#”让你滚动...
您可以尝试:
<a href="javascript:void(0);" onclick="doIt(); return false;">Woho</a>
答案 2 :(得分:0)
为什么不使用onclick
<a href="#" onclick="doMyThing() return false;" />
答案 3 :(得分:0)
对于good markup
,如果您想在同一页面上播放活动。所以,如果你使用div or span
来做这个&amp;在其上定义你的click event
。
div{
color:red;
}
<强> JS 强>
$('div').click{function(
)};
答案 4 :(得分:0)
href="javascript:void(0)"
感谢Yaniro
答案 5 :(得分:0)
由于@Yaniro评论你可以使用href =“javascript:void(0)”,原因是:
JavaScript Void 0解释
Web浏览器会尝试使用任何用作URL的内容并加载它。我们可以在不加载新页面的情况下使用JavaScript Alert语句的唯一原因是alert是一个返回null值的函数。这意味着当浏览器尝试加载新页面时,它会看到null并且无法加载。
这里需要注意的重要一点是,如果您使用JavaScript语句作为返回值的URL,浏览器将尝试加载页面。要防止这种不必要的操作,您需要在此类语句中使用void函数,该函数将始终返回null并且永远不会加载新页面。
答案 6 :(得分:0)
您可以在任何元素中使用onclick
属性,例如
<span onclick="foo()">Do something</span>
从浏览器不支持href="#"
的早期开始,使用onclick
的习惯是一种延续,仅适用于链接(在技术意义上:a
元素{{1}属性)。这是桥下的水,但旧习惯往往不会死,特别是如果人们在不知道原因的情况下采用它们。
而不是href
,您也可以使用span
。没有任何a
属性,href
元素没有特殊含义。
通过无中断原则,元素应该使用JavaScript动态生成,而不是页面的静态部分(因为当JavaScript被禁用时,它只会坐在那里,给人一种相关的印象,但不做任何事情)。