JQuery UI滑块的有趣行为

时间:2013-05-31 18:05:20

标签: javascript jquery html slider

我正在开发一个工具让我的员工填写他们的可用性,但我似乎遇到了一个有趣的错误。该表单使用范围滑块工作,员工可以将其开始时间和结束时间拖动到可用的适当范围。

我遇到的错误是当你最初向前移动滑块时,它在第一步没有改变,当你尝试回到最小值(或最大值)时它会缩短30分钟(一步)< / p>

HTML:

<span id="montime" class="text_regular" style="font-size:24px;"></span><br><br>
<span class="text_regular"><b>Check if available</b></span>
<input type="checkbox" name="moncheck" <?php echo $monchecked; ?> /><br><br>
    <div id="monslide"></div>
    <input type="text" id="monraw" name="monraw"/>
    <input type="text" id="monobj" name="monobj"/>                              

JS:

http://pastebin.com/UnxJT4fe

更新

我在jsFiddle工作:http://jsfiddle.net/cZxrb/10/

如您所见,它不符合我为其设定的最小/最大值。

由于

1 个答案:

答案 0 :(得分:0)

下面的最终解决方案

问题是在实际更改之前调用slide事件。

您可以使用change事件,但只有在释放滑块时才会调用此事件。

$("#monslide").slider({
        range: true,
        values: [360, 1320],
        min: 360,
        max: 1320,
        step: 30,
        change: monSlideTime
    });

然而,这会恶化可用性......使用两者也不会产生好感,但它有效:http://jsfiddle.net/cZxrb/15/

<强>更新 好的,我在documentation做了一些研究。您应该使用ui对象来读取值。 ui.value返回当前滑块移动的结果值,ui.values在移动前提供两个值。

我在这里使用的检查可能更清晰,但似乎有效:http://jsfiddle.net/cZxrb/21/

顺便说一句,滑块代码中没有错误,我认为他们的行为是这样的......; - )