例如,下面的链接会在jQuery中触发某些内容,但不会转到另一个页面,我前一段时间使用过这种方法。
<a class="trigger" href="#"> Click Me </a>
注意那里只有一个哈希标记,通常会在点击时跳转页面,对吧? [我认为]。它仅用于交互式内容,不会转到其他页面或其他任何内容。我看到很多开发人员这样做了。
我觉得这样做是错误的。是否有另一种推荐的方法来执行此操作而不使用HTML属性,而不是假设使用它?
不使用<button>
以太,因为该链接不是按钮。
也许没有哈希?
<a class="trigger"> Click Me </a>
&安培;在CSS中:
.trigger {
cursor: pointer;
}
所以用户仍然知道你应该点击什么?
答案 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浏览器)中,您可以禁用指针进行更改。然后您的解决方案失败但总的来说,我同意你的观点。