我正在尝试修改jQuery UI 演示中给出的函数,以将滑块绑定到现有的选择元素,以便与jQuery Slider Plugin一起使用。该函数应允许用户将值更改为滑块或选择元素,并自动更新另一个元素。
我已经修改了插件的函数,以便在 Select 元素的值更改时更新 Slider,但我不知道如何修改该函数,以便在 Slider 的值更改时更新 Select 元素。
更新 -插件文档有一个“onstatechange function()”,当滑块改变状态时触发,但我不确定如何修改代码以满足我的需要。给出的示例代码是:onstatechange: function( value ){console.dir( this ); }
,使用 onStateChange: 函数的小提琴发布在这里:http: //jsfiddle.net/v3gUg/18
HTML & JS
<select name="SliderSelect" id="SliderSelect">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<div class="layout">
<div class="layout-slider">
<input id="Slider" type="slider" name="area" value="3"/>
</div>
<script type="text/javascript" charset="utf-8">
$(function () {
var select = $("#SliderSelect");
jQuery("#Slider").slider({
from: 1,
to: 5,
scale: ['Dislike','','','', 'Love'],
limits: false,
step: 1,
dimension: '',
skin: "classic"
});
$("#SliderSelect").change(function () {
jQuery("#Slider").slider("value", this.selectedIndex + 1);
});
});
</script>
</div>
jQuery UI Demo中使用的函数
$(function () {
var select = $("#minbeds");
var slider = $("<div id='slider'></div>").insertAfter(select).slider({
min: 1,
max: 6,
range: "min",
value: select[0].selectedIndex + 1,
slide: function (event, ui) {
select[0].selectedIndex = ui.value - 1;
}
});
$("#minbeds").change(function () {
slider.slider("value", this.selectedIndex + 1);
});
});