私は現在、jQuery-Mobile を使用している webapp に取り組んでいます。update-ui-function (トラックの時間と長さ) でサーバーからデータを取得し、それらを使用して音楽トラックの現在の位置を表示します (時間はスライダーの値、長さは最大です)。これはうまくいっています。
ユーザーが前のトラックにジャンプすると、奇妙になります。update-ui-function が毎秒実行されるため、スライダーが完全にリセットされることが予想されます。しかし、そうではありません。少しジャンプしますが、最後までではなく、その後更新されません。写真は百の言葉に値するので:
正しく動作している場合のスライダー
ユーザーが前のトラックにジャンプした後のスライダー
繰り返しますが、私の問題は、 update-ui-function が2つの時間表示を正しく更新しても、スライダーがリセットされず、動きが止まることです。
スライダーが更新される方法は次のとおりです。
//Get the current position (time)
$(this).find("time").each(function(){
time = $(this).text();
});
//And the total length (time)
$(this).find("length").each(function(){
length = $(this).text();
});
//Set slider and ps
$("#positionSlider").attr("max", length);
$("#positionSlider").attr("value", Number(time)).slider("refresh");
//The time-displays which are updatet correctly
$("#currentTime").text(format_time(time));
$("#totalTime").text(format_time(length));
更新前に max- 属性と value- 属性をリセットしようとしましたが、これはスライダーが完全に機能しなくなるという事実につながりました。スライダーを削除してDOMに再度追加すると、cssが台無しになりました。
どんな助けやアイデアも大歓迎です。
編集: HTML マークアップ
<div id="position">
<input id="positionSlider" class="ui-hidden-accessible" type="range" name="slider-mini" id="slider-mini" value="0" min="0" max="100" data-highlight="true" data-mini="true" />
<p id="currentTime">00:00:00</p><p id="totalTime">00:00:00</p>
</div>