Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 - Fatal编程技术网

Javascript 限制函数在指定时间后运行

Javascript 限制函数在指定时间后运行,javascript,Javascript,我有这样的函数来生成随机颜色。每次单击将生成随机颜色。如果函数运行5次,我想显示一个警报。单击后,该功能将停止。如何做到这一点维护一个全局变量,例如count Fiddle:只有您必须使用的是计数器变量。 我已经更新了你的代码,这是JS代码 var count = 1; function randomColor(){ if(count >5){ return; } for(var i=0; i<1000; i++){ var random

我有这样的函数来生成随机颜色。每次单击将生成随机颜色。如果函数运行5次,我想显示一个警报。单击后,该功能将停止。如何做到这一点

维护一个全局变量,例如count


Fiddle:

只有您必须使用的是计数器变量。 我已经更新了你的代码,这是JS代码

var count = 1;

function randomColor(){ 
   if(count >5){ 
      return;
   }  
  for(var i=0; i<1000; i++){
    var randomColor ='#'+Math.random().toString(16).substr(2,6);
    color.style.background=randomColor;
    result.innerHTML="current color is"+randomColor;
  }
  count ++;


}

保留一个计数器以保持点击次数的变化,一旦超过限制,请删除点击属性,这样事件就不会再触发

使用change.removeAttribute'onclick';要删除,请单击事件

示例代码段:

var change=document.getElementByIdchange; var color=document.getElementByIdcolor; var result=document.getElementByIdresult; var max_number_times=5; 风险值的次数=0; 函数变色{ change.addEventListenerclick,randomColor; } 函数随机颜色{ 如果次数小于最大次数{ 次数乘以++; 对于变量i=0;i<1000;i++{ var randomColor=+Math.random.toString 16.substr2,6; color.style.background=随机颜色; result.innerHTML=当前颜色为+随机颜色; } }否则{ 完成5次 change.removeAttribute'onclick'; } } 变色 Lorem ipsum dolor sit amet,奉献精英。哈伦,我是托塔姆·多洛雷姆·丘比特!这是一个建筑设计师的作品

出于架构的考虑,我们建议不要修改randomColor函数,而是添加另一个监视randomColor调用的函数


只是为了代码的优雅:

保留一个计数器。例如:其他答案使用return false,您使用return。是否相同?是否要使用返回值如果是,则返回其他内容很有用空白返回就足够了。先生,您想看看我的JSFIDLE,它在第一次单击时不起作用。发生这种情况是因为您在changecolor中绑定了addEventListner,这意味着第一次单击事件不存在。如果你只是把事件侦听器放在这个函数之外,它会工作得很好。更新的小提琴:如果它对你有效,请选择答案。对不起,先生,我没有在你的url上看到你的更新代码。可能是地址错了吧?
var count = 1;

function randomColor(){ 
   if(count >5){ 
      return;
   }  
  for(var i=0; i<1000; i++){
    var randomColor ='#'+Math.random().toString(16).substr(2,6);
    color.style.background=randomColor;
    result.innerHTML="current color is"+randomColor;
  }
  count ++;


}
var change= document.getElementById("change");
var color= document.getElementById("color");
var result=document.getElementById("result");

function changecolor(){
    change.addEventListener("click",randomColor());
}
var i=0;
function randomColor(){
        if(i<5){
    i++;
    var randomColor ='#'+Math.random().toString(16).substr(2,6);
    color.style.background=randomColor;
    result.innerHTML="current color is"+randomColor;
    }else{
    alert('5 times run...');
    }
}
function changecolor(){
    change.addEventListener("click",monitor);
}

randomColor.calls = 0; 

function monitor () {
  randomColor.calls ++;  
  randomColor.calls <=5 && randomColor(...arguments);
}