$(".mySlider").slider({
range: "min",
min: 0,
max: 10,
slide: function(event, ui){
// do stuff here on slide...
}
});
スライダーの横に動的入力テキストがあり、スライダーの値を次のように表示するとします。
<input id="slider-value" type="text" value="7" style="text-align: center;">
したがって、私のスライダーの完全なコードは次のとおりです。
<p>
<div id="slider-value" class="mySlider ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">
<input id="slider-value" type="text" value="7" style="text-align: center;">
</p>
ご覧のとおり、最初にページが読み込まれると、スライダーの値は 7 になります。また、スライダーの値を示す入力テキストの ID は、スライダーの div 自体と同じです。ページの読み込み時にスライダーのハンドルにその値が表示されるようにします。スライダーの value 属性を 7 に設定すると、次のようになります。
$(".mySlider").slider({
range: "min",
min: 0,
max: 10,
value: 7, // value of the slider handle
slide: function(event, ui){
// do stuff here on slide...
}
});
これは問題なく動作しますが、スライダーの値がデータベースから取得され、変更される可能性があるため (1、8、4、6 など)、これが最適な方法ではないことは明らかです。
今、次のようなことをしようとすると:
$(".mySlider").slider({
range: "min",
min: 0,
max: 10,
value: $(this).closest("p").find("input[id=" + $(this).attr("id") + "]").attr("value"), // setting the value of the slider handle dynamically
slide: function(event, ui){
// do stuff here on slide...
}
});
何らかの理由で、これは機能しません。ハンドルは値を示しません。$().slider({}) 内で $(this) を使用できないためですか?
これが機能しない理由を誰かに教えてください
ありがとうございました