使用jQuery live方法在Internet Explorer中令人沮丧的循环

时间:2010-08-12 17:10:48

标签: internet-explorer jquery

长期读者,第一次海报。

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 个答案:

答案 0 :(得分: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请求。