First of all, this problem originates from the fact the
HTML
anchor cannot be set todisabled
.
我的网站中有很多 anchor (<a>
标签),用作按钮、列表、菜单项等。它们无法禁用,但在某些情况下,我需要禁用它们。为了使它们禁用,我计划执行以下操作:
- 向特定 anchor 添加类,使其灰显且“不可点击”。
暂时删除所有
onclick
事件并在之后重新附加它。我计划通过以下方式做到这一点:- 检索所有
onclick
处理程序并将其保存到Array
的functions()
稍后检索,以防您以后想再次启用它。 (我还不知道该怎么做!) - 然后删除所有
onclick
听众
- 检索所有
我要求一种仅检索 onclick 事件处理程序的方法,但我看到的只是检索所有类型的附加事件。
<小时/>编辑:伙计们,我很欣赏有关如何禁用 anchor 的答案...但是[你知道,]这不是我的问题。有些解决方案在我的场景中是不可能的(太复杂,无法在这里讨论),而上面的解决方案是目前我能做的最简单的事情。我真正想知道的是如何执行这样的事情:
var handlers = []
handlers = $("#anchor").getClickEvents()
最佳答案
你可以尝试这样的事情:
$('body').on('click', 'a:not(.disabled)', function(){
console.log($(this).text() + ' was clicked');
}).on('click', 'a.disabled', function(e){
e.preventDefault();
});
$('a').trigger('click');
$('a.disabled').removeClass('disabled');
$('a').trigger('click');
将 .on
事件分配给 anchor 父级,以便考虑任何更改。
演示中的 HTML:
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#" class="disabled">4</a>
关于javascript - 检索 <a> 标签的 onclick 监听器并删除以使其变为 'disabled',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849708/