我想知道如何禁用某个类的onclick事件。我知道您可以使用CSS pointer-events: none;
,但我希望悬停事件仍然有效,只需点击即可禁用。
以后如何重新启用它们?例如:
if (document.getElementById('wuzi').backgroundColor == "green" ) {
//disable onclick
} else {
//enable onclick
}
谢谢
答案 0 :(得分:3)
您只需添加和删除“点击”听众:
var wuzi = document.getElementById('wuzi');
if (wuzi.backgroundColor === "green" ) {
wuzi.removeEventListener('click');
} else {
wuzi.addEventListener('click', clickHandler);
}
其中 clickHandler 是您处理点击的功能。
答案 1 :(得分:1)
您可以尝试如下:
var element = document.getElementById('wuzi')
if (element .backgroundColor == "green" ) {
//disable onclick
element.onclick = '';
} else {
//enable onclick
}
答案 2 :(得分:0)
我建议您添加CSS类而不是比较backgroundColor
,然后根据类检查set disabled
属性
var element = document.getElementById('wuzi');
element.disabled = element.classList.contains("foo");
答案 3 :(得分:0)
尝试返回false onclick:
var element = document.getElementById('wuzi')
if (element .backgroundColor == "green" ) {
//disable onclick by returning false from onclick
element.onclick = return false;
} else {
//enable onclick or do some appropriate action
}
答案 4 :(得分:0)
我希望这会对你有所帮助
if (document.getElementById('wuzi').style.backgroundColor === "green" ) {
//disable onclick
this.onclick=null
} else {
//enable onclick
this.onclick=my_function;
}
只需根据需要定义您的功能
function my_function()
{
alert('enable');
}