2011-01-10 35 views
5

我做了這個javascript測驗:http://utbm.trunat.fr/CIP/quiz/爲什麼我的JQuery不在IE上加載?

它適用於普通的瀏覽器,但甚至沒有加載Internet Explorer。

它接縫,它不承認initQuiz()功能。

你有什麼想法我可以解決這個問題嗎?

+0

消息:意外調用方法或屬性訪問。 行:113 字符:460 代碼:0 URI:http://utbm.trunat.fr/CIP/quiz/js/jquery-1.4.4.min.js 消息:對象不支持此屬性或方法 行:110 char:6 代碼:0 URI:http://utbm.trunat.fr/CIP/quiz/js/start-quiz.js – simon 2011-01-10 10:11:53

+1

我喜歡如何有兩類瀏覽器:普通瀏覽器和IE。 – 2011-01-10 10:42:01

回答

10
  • Internet Explorer不接受後面的逗號:

    question = {'texte': $(this).attr("texte"), 
        'sound': $(this).attr("sound"),} 
    
  • 顯然,另一個錯誤來源於此行:

    $('title').html(QUIZ_TITLE[lang]); 
    

    原來you can't set the title like that in IE。改爲使用document.title = QUIZ_TITLE[lang]

  • 第三個錯誤是您引入了一個新變量question而沒有var關鍵字,這是IE中的錯誤。稍後您將再次使用response。更新您的loadXML這樣:

    function loadXML(xml) { 
        $(xml).find("question").each(function() { 
        var question = {'texte': $(this).attr("texte"), 'sound': $(this).attr("sound")}; 
    
         reponses = []; 
         $(this).find('carre').find('reponse').each(function() { 
         var reponse = {'texte': $(this).text(), 'sound': $(this).attr("sound"), 'bonne': false}; 
         if($(this).attr('bonne') == "vrai") reponse['bonne'] = true;    
         reponses.push(reponse); 
        }); 
    
        question['reponses'] = reponses; 
        questions.push(question); 
        }); 
        startGame(questions); 
    } 
    
  • 第四個錯誤是在你驗證的答案是正確的方式。

    if($(this).attr('data-type') == 'true') 
    

    你比較data-type屬性字符串值"true"的價值,但是當你分配值,將它設置爲布爾值true

    $('#r'+(i+1)+'input').attr('data-type', r.bonne); 
    

    要確保您總是比較字符串值,例如,您可以將值設置爲:

    $('#r'+(i+1)+'input').attr('data-type', r.bonne.toString()); 
    
相關問題