处理仅用于样式和/或交互目的的链接的推荐方法是什么?

时间:2010-11-04 09:30:32

标签: html css

例如,下面的链接会在jQuery中触发某些内容,但不会转到另一个页面,我前一段时间使用过这种方法。

<a class="trigger" href="#"> Click Me </a>

注意那里只有一个哈希标记,通常会在点击时跳转页面,对吧? [我认为]。它仅用于交互式内容,不会转到其他页面或其他任何内容。我看到很多开发人员这样做了。

我觉得这样做是错误的。是否有另一种推荐的方法来执行此操作而不使用HTML属性,而不是假设使用它?

不使用<button>以太,因为该链接不是按钮。

也许没有哈希?

<a class="trigger"> Click Me </a>

&安培;在CSS中:

.trigger {
 cursor: pointer;
 }

所以用户仍然知道你应该点击什么?

4 个答案:

答案 0 :(得分:10)

我喜欢让这些链接在点击时返回false,这样,点击它们不会导致任何跳转。 使用jQuery就像

一样简单
$(selector).click(function(e)
{
    e.preventDefault();
});

或在HTML中

<a class="trigger" onclick="return false;" href=""> Click Me </a>

答案 1 :(得分:3)

请勿删除该哈希值。

确实,在(现代的,至少)版本的Firefox,Chrome,Opera和Safari下,带有空href(即href =“”,而不是缺少href)的锚标记将显示为普通链接点击时根本不响应,不像跳转到页面顶部的hash-href。但是,Internet Explorer采用了不同的方法。

在Internet Explorer中单击没有href的链接时,它会在Windows资源管理器中打开您的桌面目录进行响应。我在IE7和IE8中得到了这个响应(IE6刚刚崩溃,虽然这可能是无关的 - 我遇到了这个VM的问题)。

如果用户在禁用JavaScript的情况下在IE浏览您的网站,您真的希望所有链接都打开他们的桌面吗?我想不是。

同样重要的是,从锚元素中删除href属性会导致它被渲染为纯文本 - 即它不作为链接,你不能标记它,等等。不好。


至于在点击时控制链接的行为,@partoa有正确但可能不完整的答案。

在任何想象中我都不是JavaScript大师,但从我读过的内容来看,你不想使用return false;。根据{{​​3}}我之前发现的return false;preventDefault还有一些您可能不想要的其他行为。它建议您只使用return false;来停止链接正常行为(即导航到新资源)。在决定如何处理它之前,请仔细阅读该链接以查看{{1}}确实做了什么。

答案 2 :(得分:2)

出于互动目的:

从标记中删除href =“#”也会将其从默认标签顺序中删除,因此使用键盘浏览的用户将无法激活您的链接。

我建议在标记中保留href =“#”,并将return false添加到链接运行的脚本末尾。

我看不出你为什么要将A标签用于样式目的。

答案 3 :(得分:1)

在konqueror(kde浏览器)中,您可以禁用指针进行更改。然后您的解决方案失败但总的来说,我同意你的观点。