2012-09-25 56 views
0

我做了這個JavaScript方法,我從現有的腳本,我在網上發現應該旋轉顯示無限數量的'.testimonial' div。該腳本在Chrome和Firefox中工作正常,但不能在Internet Explorer中編譯,除非使用f12啓動腳本的調試。 有沒有更好的方法來編寫這個腳本?我已經在線尋找想法,但一直未能找到任何東西。我認爲這個問題與console.log(testimonialCount);聲明有關,但我不確定是否有更好的方法來編寫它。任何幫助將不勝感激。謝謝。JavaScript方法不在IE中編譯,但運行調試時工作正常

//rotate testimonials script 
jQuery('.testimonial').hide(); 

var testimonialCount = $('.testimonial').length; 
console.log(testimonialCount); 
var currentItem = 0; 
var timeout; 
timeout = window.setTimeout((function(){switchDiv();}));  

switchDiv = function() { 
    if (currentItem == testimonialCount - 1) { 
     jQuery('.testimonial').eq(testimonialCount - 1).hide(); 
     currentItem = 0; 
     jQuery('.testimonial').eq(0).fadeIn(); 
     timeout = window.setTimeout((function(){switchDiv();}),7000); 
    } 
    else { 
     jQuery('.testimonial').eq(currentItem).hide(); 
     currentItem = currentItem + 1; 
     jQuery('.testimonial').eq(currentItem).fadeIn(); 
     timeout = window.setTimeout((function(){switchDiv();}),7000); 
    } 
} 
+0

請注意,這與「編譯」無關。 Javascript未編譯。 – SLaks

回答

3

當IE開發人員工具未打開時,沒有console對象。
因此,調用console.log()會引發錯誤。

爲了防止這種情況發生,您可以檢查if ('console' in window)並製作自己的虛擬控制檯(或者只是不要記錄任何內容),如果不是的話。

+0

謝謝。 'console.log(testimonialCount)'在腳本中沒有做任何事情,所以我只是把它拿出來,它編譯得很好。感謝您幫助我瞭解控制檯的工作原理。 – fudge22it

2

的幾個注意事項:

添加到您的腳本的頂部:

window.console = console || { 'log' : function(){} }; 

這定義window.console的情況下,事實並非如此。除了避免錯誤之外,不做任何事情。

下一頁取出括號周圍的超時功能:

timeout = window.setTimeout(function(){ switchDiv(); },7000); 

...或只是進一步簡化:

timeout = window.setTimeout(switchDiv,7000); 

我在這兒挑剔,但:

currentItem = currentItem + 1;是與currentItem++;

Anothe r挑剔的東西window.setTimeoutsetTimeout相同。

相關問題