のために、私は2(またはそれ以上)との単純なコードを持っているjQueryのスライダー:jQueryのスライダー - スライド:機能(イベント、UI)ループ
HTML:
<label for="ST">ST:</label>
<input type="text" id="ST" value="10">
<div id="slider-ST"></div>
<label for="DX">DX:</label>
<input type="text" id="DX" value="10">
<div id="slider-DX"></div>
とJS:
$function(){
$("#slider-ST").slider({
orientation: "horizontal",
range: "min",
value: 10,
slide: function (event, ui) {sliderChange(ui,"#ST");}
});
$("#slider-DX").slider({
orientation: "horizontal",
range: "min",
value: 10,
slide: function (event, ui) {sliderChange(ui,"#DX");}
});
function sliderChange(t, disp)
{
$(disp).val(t.value);
};
}
これは完璧に機能します。
さて、私はそれがよりよいようにしたいと私はforループでこれらの関数を呼び出すしたいと思います:jsfiddleでも利用可能
$function(){
var ID_Inp = ["#slider-ST", "#slider-DX"];
var ID_Sli = ["#ST", "#DX"];
var i;
for (i=0;i<ID_Inp.length;i++)
{
$(ID_Inp[i]).slider({
orientation: "horizontal",
range: "min",
min: 1,
max: 18,
value: 10,
slide: function (event, ui) {sliderChange(ui,ID_Sli[i]);}
});
};
function sliderChange(t, disp)
{
$(disp).val(t.value);
};
}
簡体コード:
何が起こるかは、iが変更後に2に設定されていることです。スライダーの値と明らかに関数sliderChangeが正しく機能しません(ID_Sli [i]はで、定義されていません)。
アイデア? Forループ
あなたのために働いているJSFiddleを与えることができます、このコードは動作していないようです! –
単純なjsfiddleの例でコードを更新しました。 –
slide:function(event、ui){alert( '#' + ID_Sli [i]); }、ID_Sli [i]の値をスライダの関数の中に出力すると、#undefinedが出力されます。つまり、Name配列は内部関数からアクセスできません。したがって、入力ボックスを更新することはできません。 –