仅按下按钮时运行功能

时间:2017-06-20 10:06:11

标签: javascript jquery html

我有一个脚本检查图像,然后加载页面(如果已找到)。

我正在尝试将该功能附加到按钮,以便它只检查何时按下按钮而不是页面加载。

<input type="button" id="ImgLoad" value="Check connection">

此刻,页面会在加载时重定向,而不会按下按钮。我很难看到我在哪里出错了。

<script>  
networkdelay = window.setTimeout(function()
{window.onclick=encaseimage()}, 1000);
</script>

<script>  
clickdelay = window.setTimeout(function(){window.onclick=autoc()}, 
1000);
</script>

<script>

function encaseimage(){

function ImgLoad(myobj){
   var randomNum = Date.now() || new Date().getTime();
   var oImg=new Image;
   oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
   oImg.onload=function(){window.location.href = "/status.html";}

}



networkchecker = window.setInterval(function()
{window.onclick=ImgLoad()},1000);
}
</script>

2 个答案:

答案 0 :(得分:2)

您正在调用函数而不是传递函数引用:

window.onclick=ImgLoad()

应该是:

window.onclick=ImgLoad

否则ImgLoad函数会立即运行。

我应该说将onclick添加到window可能不是最好的设计(取决于你在做什么)。通常,您会查找button(可能是id)并仅将点击处理程序附加到该特定button

在旁注中,看起来其他window.onclick事件也设置为调用函数的结果:

window.onclick=encaseimage()}, 1000);

window.setTimeout(function(){window.onclick=autoc()},

您可能也想查看这些内容。 :)

答案 1 :(得分:0)

如果要在按钮上单击加载图像,则需要将其附加到按钮单击事件。

喜欢

     $("#ImgLoad").click(function(){
       var randomNum = Date.now() || new Date().getTime();
       var oImg=new Image;
       oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
       oImg.onload=function(){window.location.href = "/status.html";}
    });