什么用作“href”属性当我想要链接无处链接并使用它来运行脚本?

时间:2012-06-07 08:54:14

标签: javascript html

我习惯做href="#",但还有其他办法吗?

因为点击这种类型的链接有时可以将用户转到查看页面的前面,我想通过点击链接加载一些脚本。

7 个答案:

答案 0 :(得分:2)

继续使用<a href="#">Click</a>,但使用一些Javascript / jQuery来阻止页面跳转:

$('a').click(function() {
    // do whatever
    return false;
}

返回false行将阻止浏览器跟踪链接,在这种情况下,它将阻止它跳转到页面顶部。

您应该将链接保留为<a>标记,而不是使用spandiv,因为这更具语义性(即用户/抓取工具会知道它应该做什么因为它是一个链接,所以。

您还应该避免使用内联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;" />

关于SO的类似讨论,href-tag-for-javascript-links-or-javascriptvoid0

答案 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并且永远不会加载新页面。

摘自:JavaScript Void 0 Explanation

答案 6 :(得分:0)

您可以在任何元素中使用onclick属性,例如

<span onclick="foo()">Do something</span>

从浏览器不支持href="#"的早期开始,使用onclick的习惯是一种延续,仅适用于链接(在技术意义上:a元素{{1}属性)。这是桥下的水,但旧习惯往往不会死,特别是如果人们在不知道原因的情况下采用它们。

而不是href,您也可以使用span。没有任何a属性,href元素没有特殊含义。

通过无中断原则,元素应该使用JavaScript动态生成,而不是页面的静态部分(因为当JavaScript被禁用时,它只会坐在那里,给人一种相关的印象,但不做任何事情)。