你如何使锚点链接不可点击或禁用?
我有一个锚链接,我想要禁用一旦用户点击它。 或者,从文字周围移除锚标记,但一定要保留文字。
<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);
如果你使用它作为属性完美的作品