0

无法真正解决这个问题。我正在做一个测验,我使用一个 scrollLeft-jQuery 函数来回答下一个问题。所以我有一个计时器,当它结束时,我希望调用 scrollLeft 函数。这适用于第一个问题,但不适用于下一个问题。我知道这是因为它只针对.aAnswers li a. 我怎样才能让它瞄准正确的?

HTML: http: //www.carlpapworth.com/friday-quiz/

JS:

function timesUp(){
            $('#timerBar').animate({'width':'0px'}, 1800, function(){
                nextQuestion(function(){
                    resetTimer();
                }); 
            });                 
}

function nextQuestion(event){
    var $anchor = $('.qAnswers a');
     $('#qWrap').stop(true, true).animate({
        scrollLeft: $($anchor.attr('href')).position().left
        }, 2000, function(){
            resetTimer();
        });

     event.preventDefault();
}

function resetTimer(){
    $('#timerBar').css('width', '100%');
    timesUp();
}

function stopTimer(){
    $('#timerBar').stop();
}
4

2 回答 2

0

您的目标始终是相同的链接而不更新它,试试这个

// >> define here
var $anchors = $('.qContainer');
var i = 0;
function nextQuestion(event){
     $('#qWrap').stop(true, true).animate({
        scrollLeft: $anchors.get(i).position().left
        }, 2000, function(){
            resetTimer();
        });
     event.preventDefault();
     // >> update here
     i++;
}
于 2013-02-28T15:45:48.263 回答
0

首先你有一个错误:“TypeError:event.preventDefault 不是一个函数”。它可能会阻止您期望的流程。

于 2013-02-28T15:36:05.323 回答