0

この問題を実際に回避することはできません。私はクイズを作成しており、scrollLeft-jQuery 関数を使用して次の質問に進みます。だから私はタイマーを持っています。それが終わったら、scrollLeft関数が呼び出されることを望みます。これは最初の質問では機能しますが、次の質問では機能しません。の最初の href="#" をターゲットにしているためだと思います.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

まず、「TypeError: event.preventDefault は関数ではありません」というエラーが表示されます。あなたが期待している流れを妨げている可能性があります。

于 2013-02-28T15:36:05.323 に答える
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 に答える