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)
但它不起作用.任何人都有解决这个问题
您的解决方案不起作用,因为您使用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_finished为true