how to disable or enable all onClick for images on a page(如何为页面上的图像禁用或启用所有 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!