你如何使锚点链接不可点击或禁用?

我有一个锚链接,我想要禁用一旦用户点击它。 或者,从文字周围移除锚标记,但一定要保留文字。

<a href='' id='ThisLink'>some text</a> 

我可以通过添加.attr("disabled", "disabled");轻松实现.attr("disabled", "disabled");
我成功添加了禁用的属性,但链接仍然是可点击的。
我不在乎文本是否带下划线。

任何线索?

你可以在这里试试看: http : //www.awesomealbums.info/?WhoAmI

当你点击错误的音乐家,它应该只是添加“错误”,然后变得不可点击。
当你点击,你是正确的,它应该添加“真棒”,然后禁用所有的<a>标签。

我刚刚意识到你所要求的(我希望)。 这是一个丑陋的解决scheme

 var preventClick = false; $('#ThisLink').click(function(e) { $(this) .css('cursor', 'default') .css('text-decoration', 'none') if (!preventClick) { $(this).html($(this).html() + ' lalala'); } preventClick = true; return false; }); 

最简洁的方法是当你想禁止点击时,添加一个类与指针事件:无。 它的function就像一个普通的标签。

 .disableClick{ pointer-events: none; } 
 <a href='javascript:void(0);'>some text</a> 

select的答案不好。

使用指针事件的 CSS样式。 (正如Jason MacDonald所build议的)

请参阅MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events 。 它在大多数浏览器中都支持。

如果你有像下面这样的全局CSS规则,简单地添加“禁用”属性到锚点将完成这项工作:

 a[disabled], a[disabled]:hover { pointer-events: none; color: #e1e1e1; } 
 $('a').removeAttr('href') 

要么

 $('a').click(function(){ return false}) 

这取决于情况

添加一个css类:

 .disable_a_href{ pointer-events: none; } 

添加这个jquery

 $("#ThisLink").addClass("disable_a_href"); 

最好的方法是防止默认操作。 在锚标签的情况下,默认行为是redirect到href指定的地址。

所以下面的JavaScript效果最好的情况下:

 $('#ThisLink').click(function(e) { e.preventDefault(); }); 

只需从锚标记中删除href属性即可。

Bootstrap为我们提供了.disabled类。 请使用它。

但是.disabled类只有在'a'标签已经具有类'btn'时才起作用。 它不适用于任何旧的“a”标签。 在某些情况下,“btn”类可能不合适,因为它具有风格的内涵。 在封面下,.disabled类将指针事件设置为none,所以你可以让CSS做和Saroj Aryal和Vitrilo一样的东西。 (谢谢Les Nightingill的build议)。

您可以使用onclick事件来禁用点击操作:

 <a href='' id='ThisLink' onclick='return false'>some text</a> 

或者你可以只使用<a>标签以外的东西。

在样式表中创build以下类:

  .ThisLink{ pointer-events: none; cursor: default; } 

添加这个类到你dynamic链接如下。

  <a href='' id='elemID'>some text</a> // or using jquery <script> $('#elemID').addClass('ThisLink'); </script> 

贾森麦克唐纳评论为我工作,在Chrome,Mozila和IEtesting。

添加灰色显示禁用效果。

 .disable_a_href{ pointer-events: none; **color:#c0c0c0 !important;** } 

jquery只select锚点列表中的第一个元素,添加了元字符(*)来select和禁用所有id为#ThisLink元素。

 $("#ThisLink*").addClass("disable_a_href"); 

尝试这个:

 $('a').contents().unwrap(); 

只需在SASS:

 .some_class{ // styles... &.active { pointer-events:none; } } 

这是我用来禁用的方法。希望它有帮助。

 $("#ThisLink").attr("href","javascript:void(0)"); 

写这个单行的jQuery代码

 $('.hyperlink').css('pointer-events','none'); 

如果你想写在CSS文件

 .hyperlink{ poniter-events:none } 
 $('#ThisLink').one('click',function(){ $(this).bind('click',function(){ return false; }); }); 

这将是另一种方式来做到这一点,处理程序与return false ,这将禁用链接,将被添加后点击一下。

最简单的方法

在你的html:

 <a id="foo" disabled="true">xxxxx<a> 

在你的js中:

 $('#foo').attr("disabled", false); 

如果你使用它作为属性完美的作品