Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置动态更改jQuery移动滑块时出现奇怪错误_Javascript_Jquery_Html_Jquery Mobile_Cordova - Fatal编程技术网

Javascript 重置动态更改jQuery移动滑块时出现奇怪错误

Javascript 重置动态更改jQuery移动滑块时出现奇怪错误,javascript,jquery,html,jquery-mobile,cordova,Javascript,Jquery,Html,Jquery Mobile,Cordova,我目前正在使用jQuery Mobile开发一个webapp。我从服务器中提取更新ui功能(曲目的时间和长度)中的数据,并使用它们显示音乐曲目中的当前位置(滑块值的时间比,最大值的长度比)。这很好用 不过,如果用户跳到上一个曲目,情况会变得很奇怪。您可以预期,由于更新ui函数每秒运行一次,滑块将完全重置。但事实并非如此。它会向后跳一点,但不会跳到最后,之后也不会更新。 既然一幅画抵得上一百个字: 如果滑块工作正常,请单击滑块 用户跳转到上一个轨迹后的滑块 所以再说一次:我的问题是滑块没有重置

我目前正在使用jQuery Mobile开发一个webapp。我从服务器中提取更新ui功能(曲目的时间和长度)中的数据,并使用它们显示音乐曲目中的当前位置(滑块值的时间比,最大值的长度比)。这很好用

不过,如果用户跳到上一个曲目,情况会变得很奇怪。您可以预期,由于更新ui函数每秒运行一次,滑块将完全重置。但事实并非如此。它会向后跳一点,但不会跳到最后,之后也不会更新。 既然一幅画抵得上一百个字:

如果滑块工作正常,请单击滑块

用户跳转到上一个轨迹后的滑块

所以再说一次:我的问题是滑块没有重置,它停止移动,即使更新ui函数确实正确地更新了两次显示

以下是滑块的更新方式:

//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-and-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>

00:00:00

00:00:00

使用
.prop()
而不是
.attr()

属性与属性

属性和属性之间的差异在应用程序中可能很重要 具体情况。在jQuery1.6之前,有时使用.attr()方法 检索某些属性时考虑了属性值, 这可能会导致不一致的行为。从jQuery1.6开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr()检索属性。例如,selectedIndex、tagName、, nodeName、nodeType、ownerDocument、defaultChecked和defaultSelected 应使用.prop()方法检索和设置。在jQuery之前 1.6中,这些属性可以使用.attr()方法检索,但这不在attr的范围内。这些没有相应的 属性和仅是属性

来源:

而不是
.attr('value',value)
使用,然后调用
刷新
方法


你能显示HTML标记吗?另外,使用
.prop()
代替
.attr()
$(“#位置滑块”).attr(“值”,数字(时间)).slider(“刷新”)
到这个
$(“#位置滑块”).val(数字(时间)).slider(“刷新”)
@MelanciaUK:参见上文,还有“attr()”和
prop()
@Omar:Thank之间的区别-这很有效。让我感到困惑,但它起作用了。不客气:)谢谢。RTFM一例:)
$("#positionSlider").val(value).slider("refresh");