こんにちは皆私はタイマーを作っていますが、問題があります。 私が間違っているところ誰かに説明することができますスピードアップしようとしていると、タイマーダウン選択フォームを使用してそれが動作しませんよください最後に、確かにスイッチとjqueryを使用してSELECT FORMの値を変更する方法
スイッチと
これは私のコードです:
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
</head>
<body>
`: :
<input id="reset" type="button" value="reset">
<input id="pauseButton" type="button" value="Pause">
<input id="reprendreButton" type="button" value="Reprendre">
<form>
<select id="bla" >
<option value="x05">x05</option>
<option value="x1" selected>x1</option>
<option value="x2">x2</option>
<option value="x4">x4</option>
</select>
</form>
`
javascriptの
<script>
var timer = {
totalSeconds: 0,
start: function() {
var mat = this;
this.interval = setInterval(function() {
mat.totalSeconds += 1;
$("#heure").text(Math.floor(mat.totalSeconds/3600));
$("#min").text(Math.floor(mat.totalSeconds/60 % 60));
$("#sec").text(parseInt(mat.totalSeconds % 60));
}, 1000);
},
pause: function() {
this.interval = clearInterval(this.interval);
this.interval = delete this.interval;
},
x05: function() {
// this.interval = this.totalSeconds += 2;
var mat = this;
this.interval = setInterval(function() {
mat.totalSeconds += 1/2;
$("#heure").text(Math.floor(mat.totalSeconds/3600));
$("#min").text(Math.floor(mat.totalSeconds/60 % 60));
$("#sec").text(parseInt(mat.totalSeconds % 60));
}, 1000);
},
x1: function() {
// this.interval = this.totalSeconds += 2;
var mat = this;
this.interval = setInterval(function() {
mat.totalSeconds += 1;
$("#heure").text(Math.floor(mat.totalSeconds/3600));
$("#min").text(Math.floor(mat.totalSeconds/60 % 60));
$("#sec").text(parseInt(mat.totalSeconds % 60));
}, 1000);
},
x2: function() {
// this.interval = this.totalSeconds += 2;
var mat = this;
this.interval = setInterval(function() {
mat.totalSeconds += 2;
$("#heure").text(Math.floor(mat.totalSeconds/3600));
$("#min").text(Math.floor(mat.totalSeconds/60 % 60));
$("#sec").text(parseInt(mat.totalSeconds % 60));
}, 1000);
},
x4: function() {
// this.interval = this.totalSeconds += 2;
var mat = this;
this.interval = setInterval(function() {
mat.totalSeconds += 4;
$("#heure").text(Math.floor(mat.totalSeconds/3600));
$("#min").text(Math.floor(mat.totalSeconds/60 % 60));
$("#sec").text(parseInt(mat.totalSeconds % 60));
}, 1000);
},
Reprendre: function() {
this.interval = !this.interval;
this.interval = this.start();
},
reset: function() {
// clearInterval(this.interval);
this.interval = this.totalSeconds -= this.totalSeconds +=1 ;
}
};
timer.start();
$('#pauseButton').click(function() { timer.pause(); });
$('#reprendreButton').click(function() { timer.Reprendre(); });
$('#reset').click(function() { timer.reset(); });
$(document).ready(function(){
switch($('#bla').val()) {
case 'x05':
/* $('#bla').click(function() { timer.x05(); }); */
break;
case 'x1':
/* $('#bla').click(function() { timer.x1(); }); */
break;
case 'x2':
/* $('#bla').click(function() { timer.x2(); }); */
break;
case 'x4':
/* $('#bla').click(function() { timer.x4(); }); */
break;
default:
//
}
});
あなたの答えはありがたいですが、まだ動作していません。理由は何ですか? – mathieu
申し訳ありませんが、私はこれに答えたときに遅れました!私はいくつかの編集を行いました。基本的には、変更があったときはいつでもスイッチを実行していて、 '#bla'をクリックするとその機能を実行するクリックイベントを初期化していました。必要なのは、 '#bla'が変わるたびに関数を実行することです。あなたのタイマー機能が正しく動作し、 '.x05'などに当たっている限り、これはうまくいくはずです! – Adam
私は自分のJSを書く方法を書きましたが、あなたがコードを使用していることを書いていますが、いくつかの編集を加えて、あなたのコードの大部分を見てコードペンを追加しました。いくつかのビットは動作しませんが、うまくいけば、私はあなたを始めさせるほど十分に修正しました。 – Adam