我目前正在开发一个使用 jQuery-Mobile 的网络应用程序。我从服务器中提取更新用户界面功能(曲目的时间和长度)中的数据,并使用它们来显示音乐曲目中的当前位置(时间是滑块的值,长度是最大值)。这工作正常。
如果用户跳到上一个曲目,它会变得很奇怪。您会期望,由于 update-ui-function 每秒运行一次,因此滑块会完全重置。然而事实并非如此。它会向后跳一点,但不会跳到最后,之后也不会更新。既然一张图值一百个字:
滑块是否正常工作
用户跳转到上一首曲目后的滑块
再说一遍:我的问题是滑块没有重置并且它停止移动,即使 update-ui-function 确实正确更新了两个时间显示。
以下是滑块的更新方式:
//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>