Javascript 检索一个<;的onclick侦听器;a>;标记并移除,使其成为';残疾人士';
首先,这个问题源于Javascript 检索一个<;的onclick侦听器;a>;标记并移除,使其成为';残疾人士';,javascript,jquery,Javascript,Jquery,首先,这个问题源于HTML锚定不能设置为禁用 我在我的站点中有很多锚(标签)作为按钮、列表、菜单项等。它们不能被禁用,但在某些情况下,我需要禁用它们。为了使他们残疾,我计划采取以下措施: 将类添加到特定锚点,使它们灰显且“不可拾取” 暂时删除所有单击事件的itonclick事件,然后重新连接。我计划通过以下方式做到这一点: 检索所有onclick处理程序,并将其保存到函数()的数组中,以备以后再次启用。(我还不知道怎么做!) 然后删除所有的onclick侦听器 我在问一种只检索onclick事
HTML
锚定不能设置为禁用
我在我的站点中有很多锚(标签)作为按钮、列表、菜单项等。它们不能被禁用,但在某些情况下,我需要禁用它们。为了使他们残疾,我计划采取以下措施:
onclick
事件,然后重新连接。我计划通过以下方式做到这一点:
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');
如果onClick事件返回false,则它将取消该事件。如果返回true,它将正常进行。如果您使用的是jQuery,则可以使用以下代码段: jQuery:
$('a.something').click(function (e) {
//do nothing
e.preventDefault();
});
javascript:
function clickLink(){
if(condition)
return false;
}
如果onClick事件返回false,则它将取消该事件。如果返回true,它将正常进行。如果您使用的是jQuery,则可以使用以下代码段: jQuery:
$('a.something').click(function (e) {
//do nothing
e.preventDefault();
});
javascript:
function clickLink(){
if(condition)
return false;
}
您可以尝试以下方法:
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>
您可以尝试以下方法:
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>
相反,您可以删除src属性,例如,将该值复制到数据src属性中,然后在需要重新启用时重置它。@IanDevlin谢谢,这可以工作。。。虽然我们在这里谈论的锚是一群
href=“#”
…啊,好吧,这是不同的。您可以在要禁用的a元素上设置类似“数据禁用”,然后在其单击处理程序中,为具有该属性的元素返回false。也许更简单,我不明白你为什么要这么做。。您只需禁用某些链接的单击事件,而不必保存链接处理程序。相反,您可以删除src属性,例如,将该值复制到数据src属性中,然后在需要重新启用时重置它。@IanDevlin谢谢,这可能行得通。。。虽然我们在这里谈论的锚是一群href=“#”
…啊,好吧,这是不同的。您可以在要禁用的a元素上设置类似“数据禁用”,然后在其单击处理程序中,为具有该属性的元素返回false。也许更简单,我不明白你为什么要这么做。。您只需禁用某些链接的单击事件,而无需保存链接处理程序。。