如何在页面上禁用或启用所有onClick图像

spo*_*b92 8 html javascript image onclick

当用户点击图像时,我希望在我的功能完成之前禁用所有其他图像上的onClicks.

我目前有这个代码禁用它们:

var eles = document.getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = false;
Run Code Online (Sandbox Code Playgroud)

但我不确定如何重新启用它们.我试过了:

var eles = document.getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = true;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.任何人都有解决这个问题

Tim*_*tje 7

您的解决方案不起作用,因为您使用onClick = false删除了onClick.之后,您需要再次创建onClick事件处理程序.

这可能是你添加onclick事件的方式,我改变它以便它应该工作.

<img src="image1.jpg" onclick="when_i_click();"/>
<img src="image2.jpg" onclick="when_i_click();"/>
Run Code Online (Sandbox Code Playgroud)

尝试在onclick上添加一个功能,如上所述.

你的onclick功能:

var when_i_click = function(){
    alert('image clicked!');
}
Run Code Online (Sandbox Code Playgroud)

这是你禁用onclicks的方法(你的方法)

var eles = document.getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = null;
Run Code Online (Sandbox Code Playgroud)

这是您重新启用它们的方法(将功能重新附加到onClick)

var eles = document.getElementsByTagName('img');
for (var i=0; i < eles.length; i++)
   eles[i].onclick = when_i_click;
Run Code Online (Sandbox Code Playgroud)

这是一个Jquery解决方案jquery:

尝试使用无阻碍的javascript,不要在DOM中添加onclick事件处理程序.

<script>
(function(){
    var function_is_finished = false;
    $('img').on('click',function(event){
        if(function_is_finished) {
            //Do your stuff when someone clicks on Img
        }
    });
})();
</script>
Run Code Online (Sandbox Code Playgroud)

完成功能后,只需设置function_is_finishedtrue