我有一个锚链接,我想在用户点击它后禁用它。或者,从文本周围删除锚标记,但绝对保留文本。
<a href='' id='ThisLink'>some text</a>
我可以通过添加.attr("disabled", "disabled");
来轻松完成此操作
我成功添加了禁用的属性,但链接仍然可以点击
我真的不在乎文本是否加下划线。
有任何线索吗?
当你点击错误的音乐家时,它应该添加“错误”,然后变得无法点击
当您单击并且您是正确的时,它应该添加“Awesome”,然后禁用所有<a>
标记。
答案 0 :(得分:185)
最干净的方法是在要禁用单击时添加一个带指针事件的类:none。它的功能类似于普通标签。
.disableClick{
pointer-events: none;
}
答案 1 :(得分:32)
<a href='javascript:void(0);'>some text</a>
答案 2 :(得分:26)
选择的答案不好。
使用指针事件 CSS样式。 (正如Jason MacDonald建议的那样)
请参阅MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events。 它在大多数浏览器中都受支持。
如果你有如下全局CSS规则,那么简单地向锚点添加“disabled”属性就可以完成这项工作:
a[disabled], a[disabled]:hover {
pointer-events: none;
color: #e1e1e1;
}
答案 3 :(得分:10)
$('a').removeAttr('href')
或
$('a').click(function(){ return false})
取决于情况
答案 4 :(得分:10)
我刚刚意识到你要求的东西(我希望)。这是一个丑陋的解决方案
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;
});
答案 5 :(得分:9)
Bootstrap为我们提供了.disabled
课程。请使用它。
但是.disabled
类仅在'a'标记已经具有类'btn'时才有效。它不适用于任何旧的'a'标签。 btn
类在某些上下文中可能不合适,因为它具有样式内涵。在幕后,.disabled
类将pointer-events
设置为none
,因此您可以让CSS执行与Saroj Aryal和Vitrilo相同的操作。 (谢谢Les Nightingill的建议)。
答案 6 :(得分:9)
添加css
课程:
.disable_a_href{
pointer-events: none;
}
添加此jquery
:
$("#ThisLink").addClass("disable_a_href");
答案 7 :(得分:5)
只需从锚标记中删除href
属性即可。
答案 8 :(得分:5)
最好的方法是阻止默认操作。对于锚标记,默认行为是重定向到href
指定的地址。
因此,以下javascript在这种情况下效果最佳:
$('#ThisLink').click(function(e)
{
e.preventDefault();
});
答案 9 :(得分:4)
写一行jQuery代码
$('.hyperlink').css('pointer-events','none');
如果你想写css文件
.hyperlink{
pointer-events: none;
}
答案 10 :(得分:3)
在样式表中创建以下类:
.ThisLink{
pointer-events: none;
cursor: default;
}
将此类添加到您的动态链接,如下所示。
<a href='' id='elemID'>some text</a>
// or using jquery
<script>
$('#elemID').addClass('ThisLink');
</script>
答案 11 :(得分:3)
添加灰色以显示禁用效果。
.disable_a_href{
pointer-events: none;
**color:#c0c0c0 !important;**
}
Jquery只选择了锚列表中的第一个元素,添加了元字符(*)来选择和禁用标识为#ThisLink
的所有元素。
$("#ThisLink*").addClass("disable_a_href");
答案 12 :(得分:3)
您可以使用onclick事件来禁用点击操作:
<a href='' id='ThisLink' onclick='return false'>some text</a>
或者您可以使用<a>
标记以外的其他内容。
答案 13 :(得分:1)
试试这个:
$('a').contents().unwrap();
答案 14 :(得分:1)
简单地在SASS:
{{1}}
答案 15 :(得分:1)
这是我用来禁用的方法。希望它有所帮助。
$("#ThisLink").attr("href","javascript:;");
答案 16 :(得分:-1)
$('#ThisLink').one('click',function(){
$(this).bind('click',function(){
return false;
});
});
这将是另一种方法,只需点击一下即可添加带有return false
的处理程序(将禁用该链接)。
答案 17 :(得分:-4)
最简单的方式
在你的HTML中:
<a id="foo" disabled="true">xxxxx<a>
在你的js中:
$('#foo').attr("disabled", false);
如果你使用它作为属性完美地运作