0

jQuery Storageを使用して、ユーザーが音楽プレーヤーに設定した音量レベルを保存および復元しています。音量スライダーをドラッグするたびに、値を保存します...

this.setVolume = function(volume) {
    ...
    $.Storage.set('volume', volume + '');
    ...
};

次に、次にページが読み込まれたときに、その値をスライダーの初期値として使用します...

$("#volumeslider").slider({
    ...
    value: volume,
    ...
});

保存と復元の部分は正常に機能します。問題は、あなたがまったく新しいユーザーで、まだ音量スライダーを調整してvolumeいない場合、値がないことです.

そのため、復元する値が保存されていない限り、 try/catchブロックを使用してデフォルトで音量を設定しようとしました。0.6

var volume = 0.6;
try {
    volume = parseFloat($.Storage.get('volume'));
} catch (e) { }

しかし、代わりに、volumeとして戻ってきNaNます。NaNそれから、単にparseFloatストレージ内の空の値の結果であるため、キャッチする「エラー」がないことに気付きました。

では、ストレージに何もない場合にのみデフォルト値を設定するにはどうすればよいでしょうか?

4

3 に答える 3

3

値を文字列として保存して数値に戻すのはなぜですか?
それにもかかわらず

$("#volumeslider").slider({
    value: parseFloat($.Storage.get("volume") || 0.6),
});
于 2012-07-23T18:36:06.923 に答える
1

この質問を参考にして解決しました。

if (!isNaN(parseFloat($.Storage.get('volume')))){
    var volume = parseFloat($.Storage.get('volume'));
} else {
    var volume = 0.6;
}
于 2012-07-23T19:15:51.263 に答える
0

私の元の答えよりもクリーンなソリューション:

var volume = parseFloat($.Storage.get('volume'));
if (!volume) {
    volume = 0.6;
    $.Storage.set('volume', volume + '');
}

保存された値が存在する場合はそれを使用します。そうでない場合は、デフォルト値を設定して代わりに保存します。

于 2013-01-22T17:27:07.167 に答える