Javascript 在同一onclick事件中执行两个函数,但只运行一次
我试图让一个映像同时运行两个javascript函数,问题是我希望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
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;"
我不知道什么是好的实践,但它可以在不太修改代码的情况下工作