0

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

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

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/

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

谢谢

4

1 回答 1

0

下面的最终解决方案

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

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

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

但是,这会降低可用性......同时使用两者也不会产生好的感觉,但它有效:http: //jsfiddle.net/cZxrb/15/

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

我在这里使用的检查可能更干净,但它似乎工作:http: //jsfiddle.net/cZxrb/21/

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

于 2013-05-31T18:34:39.033 回答