如何禁用类的onclick

时间:2016-12-27 09:06:53

标签: javascript onclick

我想知道如何禁用某个类的onclick事件。我知道您可以使用CSS pointer-events: none;,但我希望悬停事件仍然有效,只需点击即可禁用。

以后如何重新启用它们?例如:

if (document.getElementById('wuzi').backgroundColor == "green" ) {
 //disable onclick
 } else {
 //enable onclick
}

谢谢

5 个答案:

答案 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');
}