0

私は少し読んでこれを理解しようとしましたが、それを機能させることができません!

問題は、最初に設定してから、クリックするvar count = 0;たびにカウントする必要があるため、後でコードの下部で使用して、終了変数を正しく取得できることです。$('.next')progress

ここで何が間違っていますか?

$(document).ready(function () {
    var count = 0;
    $('.next').click(function () {
        var counter = count++;
        $('.question-holder:visible').slideUp().closest('.question-holder').nextAll('.question-holder').eq(0).delay(500).slideDown();
    });
    $('.prev').click(function () {
        $('.question-holder:visible').slideUp().closest('.question-holder').prevAll('.question-holder').eq(0).delay(500).slideDown();
    });
    $('#end').on('click', function () {
        $('.question-holder').slideUp().closest('.question-holder');
        $('#end').remove();
        $('.next').remove();
        $('.prev').remove();
        $('#submit-holder').fadeIn();
    });
    var countQuestions = $('div.question-holder').length;
    var splitCount = 100 / countQuestions;
    var progress = splitCount * counter;

    $("div.bar").css("width", progress + "%");
});
4

2 に答える 2

2

これを試して:

var count = 0;
$('.next').click(function () {
  count++;

...

var countQuestions = $('div.question-holder').length;
var splitCount = 100 / countQuestions;
var progress = splitCount * count;

.click()イベントがトリガーされるたびに、counter変数が再初期化されるため、追跡しようとしているカウントが消去されます。

変数をインクリメントするだけで、countうまく機能します。

于 2013-04-30T16:12:42.747 に答える
1

countこのように varを使用できます-

var progress = splitCount * count;

counterここに変数は必要ありませんvar counter = count++;

count++クリックハンドラーでのみ必要です

編集 :

実際のデモ --> http://jsfiddle.net/mohammadAdil/p3PFG/2/

クリックハンドラー内でプログレスバーを計算して更新する必要があります

于 2013-04-30T16:14:08.727 に答える