2010-08-12 70 views
1

長時間閱讀器,第一次海報。在jQuery Live方法的Internet Explorer中令人沮喪的循環

在網站上工作http://www.howardpitch.com/,我在頭版測驗中遇到了非常令人沮喪的時間。您從四個答案中選擇一個,然後單擊「檢查我的答案」按鈕。這會告訴你,如果你是對的還是錯的,併爲你提供下一個問題的按鈕。您可以在Firefox,Chrome等中全天播放此內容,但在Internet Explorer中,您會在回答第一個問題後繼續循環播放相同的問題。

jQuery的live方法與click事件一起使用來處理下一個問題,並通過AJAX調用返回到首頁,因爲當第一次加載DOM時,「Next Question」按鈕不存在。

我的代碼的任何指導/改進非常感謝。建設性的和相關的批評是我們學習的方式。

這就是我在jQuery方面的東西。

 
$('.btnCheckAnswer').live('click', function(e){ 
    $.ajax({ 
     url:'/includes/quiz-check.php', 
     type:'POST', 
     data:$('#frm_quiz').serialize(), 
     success:function(data){ 
      $('#game').replaceWith(data); 
     } 
    }); 
    e.preventDefault(); 
    return false; 
});

 
$('.nextQuestion').live('click', function(e){ 
    $.ajax({ 
     type:'GET', 
     url:'/includes/quiz.php', 
     success:function(data){ 
      $('#game_response').replaceWith(data); 
     } 
    }); 
    return false; 
}); 

感謝提前非常親切。

回答

1

它可能是一個緩存問題。嘗試cache選項設置爲false,和/或使用緩存斷路器(這是一個隨機數,或時間戳,與URL一起傳遞):

$('.nextQuestion').live('click', function(e){ 
    $.ajax({ 
     type:'GET', 
     cache: false, 
     url:'/includes/quiz.php?' + Math.round(new Date().getTime()/1000), 
     success:function(data){ 
      $('#game_response').replaceWith(data); 
     } 
    }); 
    return false; 
}); 

您也可以嘗試使用POST請求代替。

+0

緩存將追加一個時間戳,並保持IE緩存請求 – 2010-08-12 17:19:38

+0

是的,它會(我只是自己讀)。無論如何,我想我會留下時間戳的東西。 – karim79 2010-08-12 17:20:43

+0

你每天都會學到新的東西。非常感謝您的快速響應。我添加了緩存:錯誤,並解決了問題。 – 2010-08-12 18:21:21