2013-04-30 3 views
0

약간의 내용을 읽었으며이를 알아 내려고했지만 제대로 작동하지 않습니다!Jquery - 함수 밖에서 변수를 사용하십시오.

문제는 처음에는 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 + "%"); 
}); 
+0

지금은 어떤 문제가 있습니까? –

+0

카운트를 증가시키고 카운터를 사용합니다. 카운터 변수를 사용하지 마십시오. 쓸모가 없습니다. –

답변

1

이 같은 count VAR을 사용할 수 있습니다 -

var progress = splitCount * count; 

여기에 변수 countervar counter = count++;

필요 없음을 당신은 클릭 핸들러

편집에 count++이 필요합니다 작업

데모 ->http://jsfiddle.net/mohammadAdil/p3PFG/2/

클릭 핸들러 내에서 진행률 막대를 계산하고 업데이트해야합니다.

+0

당신은 왕 이십니다! 대단히 감사합니다! 정말 감사합니다! :) – Kim

2

이를 시도해보십시오 .click() 이벤트가 트리거 될 때마다, 당신의 counter 변수가 다시 초기화되고

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

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

을 ... 따라서 당신이하려고하는 어떤 수를 닦아 계속 추적해라.

count 변수 만 증가하면 올바르게 작동합니다.

+0

또한, 'counter'대신에'count'를 사용해야합니다. –

+0

그 질문은 방금 편집되었습니다. 이전에 'count'>였습니다. < – Mysteryos

관련 문제