如何在网页上的图像禁用或启用所有的onClick(how to disable or enable

2019-07-20 07:41发布

当用户点击图像上,我想禁用所有其他图像onClicks直到我的功能已经完成。

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

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

但我不知道如何重新启用它们。 我试过了:

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

但它不工作。 任何人有这个问题的解决方案

Answer 1:

因为你的onClick = FALSE删除您的onClick您的解决方案是行不通的。 之后,你需要重新创建onClick事件处理程序。

这可能是你加的onclick事件的方式,我改变了它,所以它应该工作。

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

尝试如上面增加一个功能,您的onclick。

您的onclick功能:

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

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

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事件处理程序。

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



Answer 2:

一个解决方案是保存的onclick以前的值,并恢复它:

var disable_all = function () {
    var eles = document.getElementsByTagName('div');
    for (var i=0; i < eles.length; i++) {
      eles[i].prev_click = eles[i].onclick; // save the previous value
      eles[i].onclick = false;
    }
}

var enable_all = function() {
    var eles = document.getElementsByTagName('div');
    for (var i=0; i < eles.length; i++)
       eles[i].onclick = eles[i].prev_click;  // restore the previous value
    };


Answer 3:

它的onclick到suppposed是指向一个JavaScript函数。 而不是用的onclick尝试。

eles[i].disabled="true"

并在你的方法结束回ELES .disabled [I] =“假”



Answer 4:

通过设置eles[i].onclick = false; 您重新分配onclick事件false 。 设置回真不分配回原来的功能。 这可能是更好的处理事件的功能未分配代替。



Answer 5:

基本上你的元素设置onclickfalsetrue 。 它是做什么的等效像

<img src=".." onclick="false"/>

然后

<img src=".." onclick="true"/>

你应该做的是保持一些变量,你核对,看是否可以启动功能或没有。

locked = false;
function yourFunction() {
    if (locked) {
        locked = true;
        //... Do what you have to do here
        locked = false;
    };
}


文章来源: how to disable or enable all onClick for images on a page