2015-11-04 58 views
0

我想循環我的功能,但是當我用它setInterval它保持循環i3-CTA,而不是整個功能。javascript/jquery循環函數

window.onload = function start() { 
    loop(); 
} 

function loop(){ 
    setInterval(function(){ 
     $("#i3-content").delay(6500).fadeOut(function(){ 
      if ($('#i3-content').is(':hidden')) { 
       $('#i3-CTA').fadeIn(); 
       $("#i3-CTA").delay(6000).fadeOut(function(){ 
        if ($('#i3-CTA').is(':hidden')) { 
        $("#i3-content").fadeIn(); 
        } 
       });  
      } 
     }); 
    }); 
} 

我對此還是一個新東西,但希望有人能幫助,謝謝。

+2

關係不大,但你沒有通過'setInterval's'持續時間參數,那麼你就延遲功能6.5s,再次6S,所以它可能已經在6.5s和12.5s之後執行了,你能詳細說明一下嗎?它會一直循環使用i3-CTA * – vinayakj

+0

你是什麼意思'它保持循環i3-CTA而不是整個函數?沒有'i3-CTA' – Justinas

+0

這樣的功能啊你的權利就是問題我刪除了6.5秒,並將它添加到了setInterval中,但是我怎樣才能確保我的i3-CTA持續顯示6秒?因爲延遲只會把事情搞砸。 – DTH

回答

1

window.onload = function start() { 
 
    setInterval(loop(), 6500) 
 
} 
 

 
function loop(){ 
 
     debugger; 
 
     $("#i3-content").fadeOut(function(){ 
 
      if ($('#i3-content').is(':hidden')) { 
 
       $('#i3-CTA').fadeIn(); 
 
       $("#i3-CTA").delay(6000).fadeToggle(function(){ 
 
        if ($('#i3-CTA').is(':hidden')) { 
 
        $("#i3-content").fadeToggle(); 
 
        } 
 
       });  
 
      } 
 
     }); 
 
    
 
}
#i3-content{ 
 
height:20px; 
 
    background:red; 
 
} 
 
#i3-CTA{ 
 
height:20px; 
 
    background:green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='i3-content'></div> 
 
<div id='i3-CTA'></div>

+0

現在它需要回到綠色,所以它保持循環 – DTH

+0

好吧,讓我這樣做。 – Mitul

+0

完成請檢查。 – Mitul

0

如果我們如下修改代碼,這將是更有意義:

window.onload = function start() { 
    doSomeJob(); 
} 

function doSomeJob(){ 
    console.log("first line of func") 
    setInterval(function(){ 
     console.log("inside of setInterval") 
     }); 
    }, 1000); 
    console.log("last line of func") 
} 

那麼結果會是這樣的:

FUNC
的setInterval的內部FUNC
最後一行的第一線
的setInterval
內的setInterval
內的setInterval內 ....

混淆來自您的函數名稱循環。 的setInterval給你循環不調用窗口加載功能