2017-01-12 65 views
0
var change= document.getElementById("change"); 
var color= document.getElementById("color"); 
var result=document.getElementById("result"); 

function changecolor(){ 
    change.addEventListener("click",randomColor()); 
} 
function randomColor(){ 
    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; 
    } 
} 

https://jsfiddle.net/z9yu3tjm/限制功能spesifict時間

運行後我有功能一樣,生成隨機顏色。每次點擊都會產生隨機顏色。如果函數運行5次,我想顯示警報。該功能將停止(無法點擊)。如何做到這一點

+0

保留一個計數器。 –

+0

例如:https://jsfiddle.net/z9yu3tjm/3/ –

回答

1

保持一個全局變量,例如count

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 ++; 


} 

小提琴:https://jsfiddle.net/qbevnvjj/

+0

其他回答使用return false,你使用return。它是一樣的嗎? – GerryofTrivia

+0

如果是的話,你是否想要使用返回值,那麼返回其他東西是有用的空白返回就足夠了。 – squiroid

+0

先生你想看看我的jsfiddle,它沒有工作在第一次點擊https://jsfiddle.net/z9yu3tjm/5/ – GerryofTrivia

0

只有你必須使用的計數器變量。 https://jsfiddle.net/z9yu3tjm/1/ 我已更新您的代碼,這裏是JS代碼。

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...'); 
    } 
} 
0

保持一個計數器,以點擊次數的創格,一旦它超過了限制刪除上點擊屬性,這樣的事件不再被解僱。使用刪除點擊事件。

示例代碼段:

var change = document.getElementById("change"); 
 
var color = document.getElementById("color"); 
 
var result = document.getElementById("result"); 
 
var max_number_times = 5; 
 
var number_of_times = 0; 
 

 
function changecolor() { 
 
    change.addEventListener("click", randomColor()); 
 
} 
 

 
function randomColor() { 
 
    if (number_of_times < max_number_times) { 
 
    number_of_times++; 
 
    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; 
 
    } 
 
    } else { 
 
    alert("5 times done") 
 
    change.removeAttribute('onclick'); 
 
    } 
 
}
<button id="change" onclick="changecolor()">change color</button> 
 
<section id="color"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum, ullam ex totam dolorem cupiditate! Velit autem, obcaecati magni molestiae architecto.</p> 
 
    <p id="result"></p> 
 
</section>

0

對於架構的關注,我們建議不要修改randomColor功能,但是,要添加的監控randomColor調用另一個函數。

function changecolor(){ 
    change.addEventListener("click",monitor); 
} 

randomColor.calls = 0; 

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

只是爲了代碼優雅:)