2013-03-13 139 views
7

我有一個功能,我正在用一個按鈕替換一些文本輸出或相應的售罄標籤。JQuery文檔就緒功能不能在IE中工作

jQuery(document).ready(function() { 
jQuery('td.register').each(function() { 
    var text = jQuery(this).text(); 
    var exploded = text.split(','); 
    console.log(exploded[0]); 
    console.log(exploded[1]); 
    if (exploded[0] == 0) { 
     jQuery(this).html("<font color='red'>SOLD OUT</font>"); 
    } else { 
     jQuery(this).html("<a class='button' title ='Register for this event' href='" + exploded[1] + "'>Register</a>"); 
    } 
}) 
}); 

它似乎在大多數瀏覽器上正常工作,但客戶端抱怨在IE9中它不工作。當我在我的電腦上測試它的時候,大部分時候它都能正常工作,但有時候它不會,並且每我在browsershots.org上測試它都不起作用。它顯示在browsershots.org測試中,就好像jQuery甚至沒有運行一樣。

+2

這是因爲你使用'的console.log()'這是IE9 [只有當開發者工具打開(HTTP可供選擇:// stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function)。只要刪除這些行,它應該工作。 – JJJ 2013-03-13 07:53:22

+1

另外,您可能想要確保內容看起來不錯,並且最好能在JavaScript禁用時使用。 – JJJ 2013-03-13 07:55:19

+0

我發現這個谷歌搜索「文件準備功能不起作用在Internet Explorer」。但我不知道自己怎麼能自己發現這個問題?我怎麼能追查到它?作爲一個側面說明,我在AJAX頁面上遇到了一些問題,然後發現了'ajaxComplete'函數。 – 2013-08-21 07:43:16

回答

7

控制檯不是在IE9中定義修改代碼就像

jQuery(document).ready(function() { 
jQuery('td.register').each(function() { 
    var text = jQuery(this).text(); 
    var exploded = text.split(','); 
    if(typeof(console)!='undefined'){ 
     console.log(exploded[0]); 
     console.log(exploded[1]); 
    } 
    if (exploded[0] == 0) { 
     jQuery(this).html("<font color='red'>SOLD OUT</font>"); 
    } else { 
     jQuery(this).html("<a class='button' title ='Register for this event' href='" + exploded[1] + "'>Register</a>"); 
    } 
}) 
}); 
+0

我不敢相信那是它。我無法重現它的原因是Juhana在上面說的 - 當開發工具打開時,它就可以工作。謝謝! – 2013-03-13 08:17:45

+0

IE對你做了這樣的事'')',很高興解決了你的問題 – dakait 2013-03-13 09:45:49

+0

幫我理解IE9沒有控制檯。無法弄清楚爲什麼我的代碼不工作,而所有的時候,它是由控制檯造成的;)謝謝,+1 – Ben 2014-11-13 18:05:30

相關問題