检索<a>标记并移除以使其'已禁用'
Retrieve onclick listeners of an <a> tag and remove to make it 'disabled'
首先,这个问题源于
HTML
锚不能设置为disabled
。
我的网站上有很多锚(<a>
标签(,用作按钮、列表、菜单项等。它们不能禁用,但在某些情况下,我需要禁用它们。为了让他们成为残疾人,我计划做以下事情:
- 将类添加到特定的锚点,这将使它们变灰并"不可点击">
-
暂时删除所有它的
onclick
事件,然后重新附加它。我计划通过:- 检索所有
onclick
处理程序,并将其保存到functions()
的Array
中,以备以后再次启用(我还不知道怎么做!( - 然后删除所有
onclick
侦听器
- 检索所有
我正在询问一种只检索onclick事件的处理程序的方法,但我所看到的只是检索所有类型的附加事件。
编辑:伙计们,我很感激关于如何禁用主播的答案。。。但是这不是我的问题。有些解决方案在我的场景中是不可能的(太复杂了,无法在这里讨论(,上面的解决方案是目前我能做的最简单的事情。我真正想知道的是如何执行这样的操作:
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
事件分配给锚点父级,以便考虑任何更改。
演示中的HTML:
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#" class="disabled">4</a>
这是一个演示
如果在onClick事件上返回false,则它将取消该事件。如果返回true,它将正常进行。如果您使用的是jQuery,您可以使用以下代码段:
jQuery:
$('a.something').click(function (e) {
//do nothing
e.preventDefault();
});
javascript:
function clickLink(){
if(condition)
return false;
}
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- 如何逃离<>在javascript下划线模板中
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 正则表达式,它允许除“”之外的所有字符<>_;{}[]”;
- ajax调用:响应<->数据类型
- 如果所有三个文本框<>然后是100%
- CORS的问题.烧瓶<->AngularJS
- 有没有一种方法可以创建与Java<->JSON映射对象,如JSON.stringfy(jsObject)创建的
- 什么是%<>%调用了语法
- JavaScript返回值:What dos<>意思是
- JavaScript中哪种类型的值对应于Java`List<>`
- 如何发送类似“<>"在参数中使用$.ajax-to-server
- 不等于<>操作员不工作
- jquery附加函数转换<>到实体名称
- 只有当超过3个元素时才显示更多内容按钮,否则不显示.使用jquery's:lt:gt
- 为什么在<>ckeditor中不支持
- url有效性的Java脚本regexp,带有<>
- 设计Javascript前端<->C++后端通信
- 比较查询运算符ObjectId<->日期