ユーザーが走行距離計(カウンター変数のスクリプトの下部)を設定するためにデータを入力したときに呼び出される関数があります。ユーザーがフィールドのいずれかを変更したい場合は、フォームに新しいデータを入力するだけで、走行距離計がリセットされ、再開されます。
私が抱えている問題は、以前の機能(jOdometer)が、以前のデータと新しい設定された走行距離計でまだ実行されていることです。前の関数の実行を停止して再開するにはどうすればよいですか?
私は次のことができることを望んでいました...
$(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
});
})
});
ただし、機能しません。私は何が間違っているのですか?