簡體   English   中英

javascript方法無法在IE中編譯,但在運行調試時可以正常運行

[英]javascript method not compiling in IE but works fine when running debug

我做了這個javascript方法,從網上找到的現有腳本更改了該方法,該腳本應該旋轉顯示無限數量的'.testimonial' div。 該腳本在chrome和firefox中可以正常工作,但是除非您使用f12啟動腳本調試,否則它不能在Internet Explorer中編譯。 有沒有更好的方法來編寫此腳本? 我在網上尋找想法,但找不到任何東西。 我認為問題出在console.log(testimonialCount); 聲明,但不確定是否有更好的編寫方法。 任何幫助將不勝感激。 謝謝。

//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);
    }
}

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

為了防止這種情況,您可以檢查if ('console' in window) ),如果沒有,則創建自己的虛擬控制台(或者只是不記錄任何內容)。

一些注意事項:

將此添加到腳本的頂部:

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

如果沒有,則定義window.console 除了避免錯誤外,什么也不做。

接下來,取出有關超時功能的括號:

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

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

timeout = window.setTimeout(switchDiv,7000);

我在這里很挑剔,但是:

currentItem = currentItem + 1; currentItem++;相同currentItem++;

另一個挑剔的東西window.setTimeoutsetTimeout相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM