Mam funkcję, która jest wywoływana, gdy użytkownik wprowadza dane, aby ustawić licznik licznika (dno skryptu w zmiennej licznika). Jeśli użytkownik chce zmienić dowolny z pól, może po prostu umieścić nowe dane w formularzu, a licznik ponownie zresetuje i rozpocznie się ponownie.

Problem, który mam, jest poprzednią funkcją (Jodometr) wciąż działa z poprzednimi danymi, a także nowy rozkład próbny. Jak zatrzymać poprzednią funkcję od uruchomienia i zaczniesz ponownie?

Mam nadzieję, że mogłem zrobić następujące ...

    $(function(){

        var counter;

        $('#submit').click(function(){

            if(counter != undefined){
                counter.stop();
            }

            // get values from user.
            var counter_start = 0;
            var counter_end = 0;
            var increment = 0;
            var delayTime = 0;
            var speed = 0;
            var extraDigits = [];

            if($('#counter_end').length > 0){
                 counter_end = $('#counter_end').val();
            }else{
                counter_end  = false;
            }
            if($('#counter_start').length > 0){
                counter_start = $('#counter_start').val();
                if(counter_end.length > counter_start.length){
                    for(i=counter_start.length+1; i<=counter_end.length; i++){
                        extraDigits = '0' + extraDigits;
                    }
                    if(extraDigits.length > 0){
                        counter_start = extraDigits + counter_start
                    }
                }
            }else{
                counter_start = 1;
            }
            if($('#increment').length > 0){
                increment = $('#increment').val(); 
            }else{
                increment = 1;
            }
            if($('#delay_time').length > 0){
                delayTime = $('#delay_time').val(); 
            }else{
                delayTime = 500;
            }
            if($($('#delay_time')).length > 0){
                delayTime = $('#delay_time').val();
            }else{
                delayTime = 1000;
            }

            counter = $('.counter4').jOdometer({
                counterStart: String(counter_start),
                counterEnd: String(counter_end),
                delayTime: parseInt(delayTime),
                increment: parseInt(increment),
                speed: parseInt(speed),
                    formatNumber: true,
                spaceNumbers: 0,
                widthDot: 10
            });
        })

    });

Nie działa jednak. Co ja robię źle?

0
Dickie C. Skinner 13 sierpień 2012, 15:43

1 odpowiedź

Możesz użyć event.stopPropagation();, aby zatrzymać uruchomione wydarzenie.

0
Buzz 13 sierpień 2012, 11:59