Javascript 在同一onclick事件中执行两个函数,但只运行一次

Javascript 在同一onclick事件中执行两个函数,但只运行一次,javascript,html,Javascript,Html,我试图让一个映像同时运行两个javascript函数,问题是我希望changeImg()函数在每次单击时持续运行,但只执行clock()函数一次。(以便启动计时器)。 这是我的changeImg()脚本: { var x = Math.floor(Math.random()*900); var y = Math.floor(Math.random()*900); var obj = document.getElementById("emotion"); obj.sty

我试图让一个映像同时运行两个javascript函数,问题是我希望
changeImg()
函数在每次单击时持续运行,但只执行
clock()
函数一次。(以便启动计时器)。

这是我的
changeImg()
脚本:

{
var x = Math.floor(Math.random()*900);
var y = Math.floor(Math.random()*900);


var obj = document.getElementById("emotion");

obj.style.top = x + "px";
obj.style.left = y + "px";


 }
   function clock() {
     myTimer = setInterval(myClock, 1000);
     var c = 30;

     function myClock() {
       document.getElementById("demo").innerHTML = --c;
       if (c == 0) {
         clearInterval(myTimer);
         alert("Reached zero");
       }
     }
   }
这是我的
clock()
脚本:

{
var x = Math.floor(Math.random()*900);
var y = Math.floor(Math.random()*900);


var obj = document.getElementById("emotion");

obj.style.top = x + "px";
obj.style.left = y + "px";


 }
   function clock() {
     myTimer = setInterval(myClock, 1000);
     var c = 30;

     function myClock() {
       document.getElementById("demo").innerHTML = --c;
       if (c == 0) {
         clearInterval(myTimer);
         alert("Reached zero");
       }
     }
   }
clock()
检查计时器是否已设置,然后返回

function clock() {
  if (myTimer) { // clock already started
    return;
  }
  myTimer = setInterval(myClock, 1000);
  var c = 30;

  function myClock() {
    document.getElementById("demo").innerHTML = --c;
    if (c == 0) {
      clearInterval(myTimer);
      alert("Reached zero");
    }
  }
}

而不是传递
null
以再次单击传递函数
changeImg

onclick="changeImg();clock();this.onclick=changeImg;"
我不知道什么是好的实践,但它可以在不太修改代码的情况下工作