如何为页面上的图像禁用或启用所有 onClick [英] how to disable or enable all onClick for images on a page

查看:31
本文介绍了如何为页面上的图像禁用或启用所有 onClick的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When the user clicks on an image, I want the onClicks on all other images to be disabled until my function has finished.

我目前有这段代码可以禁用它们:

I currently have this code that disables them:

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

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

but I'm not sure how to re enable them. I have tried:

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

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

But its not working. anyone have solution for this problem

推荐答案

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

Your solution doesn't work because you removed your onClick with onClick = false. After that you need to create the onClick event handler again.

这可能是您添加 onclick 事件的方式,我对其进行了更改,因此它应该可以工作.

This is probably your way of adding onclick events, I changed it so it should work.

<img src="image1.jpg" onclick="when_i_click();"/>
<img src="image2.jpg" onclick="when_i_click();"/>

尝试向您的 onclick 添加一个函数,如上所示.

您的点击功能:

var when_i_click = function(){
    alert('image clicked!');
}

这是您禁用点击的方式(您的方法)

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

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

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

这是一个jquery解决方案jquery:

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

Try using unobstructive javascript, by not adding onclick event handlers in the DOM.

<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>

当你的函数完成后,只需将 function_is_finished 设置为 true

When your function is finished just set function_is_finished to true

这篇关于如何为页面上的图像禁用或启用所有 onClick的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆