gpt4 book ai didi

javascript - 只执行一次函数

转载 作者:行者123 更新时间:2023-11-30 18:01:28 26 4
gpt4 key购买 nike

我读了这个线程并尝试使用 Ted Hopps 方法 Function in javascript that can be called only once

但是我好像不能让它正常工作。我想通过 onclick="function()"在图像上用 JS 创建一个 div。但我只想这样做一次。

 function runOnce(f){           

var executed = false;
return function () {
if (!executed) {
executed = true;
return f.apply(this,arguments);
}
};
}
function rollover() {
var new1=runOnce(myfunction);
new1(1);
}

function myfunction(){


var tr1 = document.createElement("tr1");
tr1.style.width = "50%";
tr1.style.height = "100%";
tr1.style.background = "red";
tr1.style.color = "white";
tr1.style.right= "0px"
tr1.style.top= "0px"
tr1.style.padding= "2%"
tr1.style.opacity= "0.6"
tr1.style.position = "fixed";
tr1.innerHTML = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum";

document.body.appendChild(tr1);



}

我从 onclick 调用翻转功能

<img class="trans01button" onclick="rollover(1)" src="images/backgroundfragments_03.jpg" alt="Translation games" >

我的问题是它仍然多次执行函数。我做了一个 jfiddle http://jsfiddle.net/RE3fp/在这里,但我无法在我的 Dreamweaver 版本运行时使其运行。我的意思是我什至不能让“myfunction”div 出现,而​​我的问题是每次我单击图像时它都会执行。

最佳答案

您需要将此行:var executed = false; 移到 runOnce 函数范围之外。

Workind DEMO

因为当您进入runOnce 函数时总是,您将标志设置为false

关于javascript - 只执行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com