Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript只创建一个按钮?_Javascript_Html_Function - Fatal编程技术网

使用javascript只创建一个按钮?

使用javascript只创建一个按钮?,javascript,html,function,Javascript,Html,Function,我有一个HTML按钮,当你点击它,调用一个函数。功能如下: function newButton () { let btn = document.createElement("BUTTON"); btn.innerHTML = "Click me"; document.body.appendChild(btn); } 我需要它,这样HTML按钮只能调用此函数一次(这样它只创建一个按钮),否则,如果继续单击原始HTML按钮,它将继续创建更多新按钮 有

我有一个HTML按钮,当你点击它,调用一个函数。功能如下:

function newButton ()
{
 let btn = document.createElement("BUTTON");
 btn.innerHTML = "Click me";
 document.body.appendChild(btn);
}
我需要它,这样HTML按钮只能调用此函数一次(这样它只创建一个按钮),否则,如果继续单击原始HTML按钮,它将继续创建更多新按钮


有什么想法吗?

一种方法是跟踪变量中的状态。比如:

let created = false;

function newButton () {
  if (!created) {
    // your code
    created = true;
  }
}

当然,只需添加一个
if
语句和一个var(int,如果您想创建多个,布尔,如果只有一个),类似于:

var btnAmount = 1;

function newButton ()
{
  if(btnAmount == 1) {
    //do your thing and create the button
    btnAmount--;
  }
}

又快又脏,对您的具体场景不太了解:

function newButton ()
{
 let btn = document.createElement("BUTTON");
 btn.innerHTML = "Click me";
 document.body.appendChild(btn);
 newButton = () => {};
}
如果从事件处理程序调用此函数,则可以设置。这样做只会调用该方法一次,同时删除处理程序以进行后续调用


使用
addEventListener
,通过将
once
选项设置为
true
,您只能侦听一次事件。这将在调用
newButton
后删除事件侦听器

const-button=document.getElementById('create-button');
函数newButton(){
设btn=document.createElement(“按钮”);
btn.innerHTML=“单击我”;
文件.正文.附件(btn);
}
addEventListener('click',newButton,{once:true})

创建按钮,但只能创建一次。
您可以检查按钮是否存在,ID或类是否存在。如果它没有创建新的。在其他情况下-什么也不做。

函数新按钮()
{
设btn=document.createElement(“按钮”);
btn.innerHTML=“单击我”;
文件.正文.附件(btn);
btn.addEventListener('click',newButton,{once:true});
}
document.getElementById('rootButton')。addEventListener('click',newButton')

记住,如果
statement@germanio真的!我就在那里发呆了,他没有进一步阐述你的情况,几乎不可能正确回答这个问题你好,詹姆斯,欢迎来到SO,我建议您阅读以下文章,了解如何创建一个最小的可复制示例,并为您的问题添加更多内容,以便社区拥有他们需要的工具来帮助您解决问题。。。和