Jquery工具:Rangeinput获取输入更改的值

时间:2012-02-07 16:10:07

标签: jquery range jquery-tools

我使用Jquery tools rangeinput

例如我有:

  <input id="testId" title="test" class="range" type="range" name="test" min="0" max="3000" value="15" />

脚本:

$(".range").rangeinput();

        $("#testId").live('change', function() { 
            console.log($(this).data("rangeinput").getValue());    
        });

所以默认情况下我的值是15.然后我输入我的输入25,但是控制台的结果是15,而不是我输入20,但结果是25.我做错了什么?

谢谢!

4 个答案:

答案 0 :(得分:1)

请尝试这种方式。发生的事情是在调用getValue之前未设置更改的值。致电setTimeout 0将解决此问题。

$(".range").rangeinput();

$(".range").live('change', function(){
    var $range = $(this);
    setTimeout(function(){
        console.log($range.data('rangeinput').getValue());
    }, 0);
});

答案 1 :(得分:0)

如果您可以摆脱live并直接使用change,那么它会起作用,因为插件会使用更改事件本身。

 $("#testId").change(function() { 
      console.log($(this).data("rangeinput").getValue());    
 });

答案 2 :(得分:0)

<span>Totar horizontalmente</span>
<input id="rota_hor" type='range' name='range' min='0' max='360' step='10' value='3' style="width: 350px;"/>

<script>
    $("#rota_hor").change(function()
    { 
        console.log($(this).attr("value"));
    });
</script>

答案 3 :(得分:0)

您必须使用jQuery Tools scripting数据(工具名称)API才能访问值

<input id="myRange" name="some_name" type="range" value="20" min="0" max="100" step="10" />

<script>
var rangeApi = $('#myRange').rangeinput({
    // Some settings here if it needed
}).data('rangeinput');
rangeApi.setValue(100);
console.log(rangeApi.getValue());
</script>