2012-02-07 18 views
0

私はJquery tools rangeinputを使用します。例えば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です。私は間違って何をしていますか?

ありがとうございました!

+1

にアクセスするためjQuery Tools scriptingデータ(ツール名)APIを使用する必要があります。最後の値。 – ShankarSangoli

答えて

1

代わりにこの方法を試してください。何が起こっているのは、getValueを呼び出す前に変更された値が設定されていないということです。 setTimeout0と呼ぶとそれが修正されます。

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

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

ありがとう!できます! – denys281

+2

".live"は推奨されていません。 – vlio20

0

liveを取り除き、changeを直接使用すると、プラグインが変更イベントを使用するため、動作します。

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

ありがとうございますが、私は同じ状況です... – denys281

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> 
0

あなたは、プラグインは、あなたが常になっている理由は、その値を更新する前に、あなたがそれを読んしようとしているかもしれませ値

<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> 
関連する問題