2016-07-26 42 views
0

我有以下js,在一個time interval變化div內容,我喜歡它是如何工作的,但需要更改它,從而script只運行一次怎麼辦我這樣做?有一個腳本,之後的時間間隔需要改變div來改變,因此只能運行一次

<script type="text/javascript"> 

function initChangeText() 
{ 
    var time = 10; 
    setInterval('changeText();',time*1000); 
} 
function changeText() 
{ 
    var divs_ = document.getElementsByTagName("div") 
    for (var i = 0;i<divs_.length;i++) 
     if (divs_[i].className == "change") 
      changeULText(divs_[i]); 

} 
function changeULText(obj) 
{ 
    var ul = obj.getElementsByTagName("ul")[0]; 
    var li = obj.getElementsByTagName("li"); 
    for (var i=0;i<li.length;i++) 
    { 
     if (li[i].className == "show") 
     { 
      li[i].className = ""; 
      li[(i+1)%li.length].className = "show"; 
      return ; 
     } 
    } 
} 
window.onload = initChangeText; 
</script> 

感謝 添

+2

變化'setInterval'到'setTimeout'。 –

回答

2

可以使用的setTimeout來代替setInterval的

function initChangeText(){ 
    var time = 10; 
    setTimeout(changeText,time*1000); 
} 
function changeText(){ 
    var divs_ = document.getElementsByTagName("div") 
    for (var i = 0;i<divs_.length;i++) 
     if (divs_[i].className == "change") 
      changeULText(divs_[i]); 

    } 
function changeULText(obj) { 
    var ul = obj.getElementsByTagName("ul")[0]; 
    var li = obj.getElementsByTagName("li"); 
    for (var i=0;i<li.length;i++){ 
     if (li[i].className == "show"){ 
      li[i].className = ""; 
      li[(i+1)%li.length].className = "show"; 
      return ; 
     } 
    } 
} 
window.onload = initChangeText; 
</script> 
相關問題