【问题标题】:Disable <a> click without the help of jQuery/Javascript [duplicate]在没有jQuery / Javascript帮助的情况下禁用<a>点击[重复]
【发布时间】:2013-09-15 06:17:11
【问题描述】:

在没有 jQuery/Javascript 帮助的情况下,是否可以在 HTML 中抑制 a 标签上的点击处理程序?

disabled 仅适用于buttoninput,但我选择在我的代码中使用a 标签。我想我可以使用span 并模拟我目前拥有的确切a 样式,但如果有一个简单的方法会很好。

提前致谢。

【问题讨论】:

  • Javascript?试试 onclick="return false;" ...但它不是很漂亮。你使用“href”标签吗?
  • 使用跨度而不是您建议的锚。如果你不希望某样东西表现得像一个锚,那么就不要让它成为一个锚。
  • 您需要将“href”正确设置到某个页面吗?
  • 试试这个 .disabled { pointer-events: none;光标:默认; } 链接

标签: html


【解决方案1】:

# 用作href 或省略href。链接将不再起作用。正如 cocco 所指出的,将href 设置为# 有一个缺点,即历史记录会混乱,浏览器会跳回页面顶部。尽管如此,# 的值已被用于许多页面。

无法禁用onClick,但您可以使用onclick="return false"。这样点击时什么都不会发生。

还有一个使用 css 的部分解决方案(描述为in this already answered question)。

【讨论】:

  • hello 比 # 好,因为它还可以防止更改哈希。
  • @cocco:它阻止了哪种改变方式?通过 javascript 也可以通过 .setAttribute('href', 'http://something'); 设置属性,所以我认为没有优势。
  • 我说的是主题标签“#”。您甚至不需要设置主题标签,您可以将其设置为空。 el.setAttribute('href', '');el.href='';link==disabled.
  • @cocco:虽然这是绝对正确的,但省略该属性就可以了,但我不明白您对 防止更改哈希 的意思。您的意思是它会阻止您意外更改 href?
  • 没什么特别的... 1.如果不需要,我不喜欢 url 上的井号标签。 2.如果我没记错的话,有时如果你向下滚动它会在某些浏览器上跳到顶部。
【解决方案2】:

有很多方法可以做到这一点..

1.最简单的:

a.onclick=function(){
 return false
}

2.标准/现代:

a.addEventListener('click',function(e){
 e.preventDefault()
},false)

示例class=active 激活链接。

http://jsfiddle.net/y7vVq/

【讨论】:

  • 我认为没有 Javascript 也没有办法做到这一点?
  • 不..这是不可能的。
  • 是的,可以使用 CSS
  • 不是正确的方式..但我们永远不会舒尔......所以在 jsfiddle 上演示?
  • 在 href 中添加 # 也是一种解决方案(顺便说一句,您需要 js 将其更改为),但如果我没记错的话,它会将页面移动到顶部。或使用 css3 禁用点击,但旧浏览器不支持。
【解决方案3】:
onclick="return false"

这是在标签中禁用点击的简单方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2021-09-07
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多