目前我使用默认的Jquery滑块来更改jVectormap中地图中的值,但由于样式选项有限,我不得不切换到另一个滑块。这是工作Jquery滑块的代码:
$(".slider").slider({
value: val,
min: 2002,
max: 2012,
step: 1,
slide: function( event, ui ) {
val = ui.value;
mapObject.series.regions[0].setValues(data.states[ui.value]);
checkData(val);
}
});
现在我找到了一个完全符合我需要的不同滑块(ionRangeSlider:http://www.spicyjquery.com/demo,34.html),但它的工作方式与默认的Jquery滑块相同,因此失去了功能。这是ionRangeSlider的代码:
$("#ion_slider").ionRangeSlider({
value: val,
min: 2002,
max: 2012,
step: 1,
type: 'single',
hasGrid: true
});
要使用ionRangeSlider更改幻灯片上的值,我应该根据滑块的文档使用onChange函数:
// callback is called on every slider change
onChange: function (obj) {
console.log(obj);
}
所以我现在要做的是使用ionRangeSlider更改jVectormap上的值。我的解释如下:
$("#ion_slider").ionRangeSlider({
value: val,
min: 2002,
max: 2012,
step: 1,
type: 'single',
hasGrid: true,
// callback is called on every slider change
onChange: function ( event, ui ) {
val = ui.value;
mapObject.series.regions[0].setValues(data.states[ui.value]);
checkData(val);
}
});
但是 - 当然 - 它返回了一个错误,即ui未定义。
我的猜测是它与Jquery UI有关,但它包含在页面中:
任何想知道怎么解决这个问题的人?对不起,我对此很陌生。
答案 0 :(得分:2)
谢谢你们,我设法解决了这个问题。这就是我所做的:
$("#ion_slider").ionRangeSlider({
value: val,
min: 2002,
max: 2020,
step: 1,
type: 'single',
hasGrid: true,
// callback is called on every slider change
onChange: function ( obj ) {
val = obj.fromNumber;
console.log(val);
mapObject.series.regions[0].setValues(data.states[val]);
checkData(val);
}
});
答案 1 :(得分:0)
来自文档:
onChange: Triggered live as the slider value is changed. Returns object with all slider values.
所以,你的功能应该是这样的:
onChange: function (obj) {
// do stuff here
}
obj
包含您的值的位置。我不知道用什么格式,所以试试这个:
onChange: function (obj) {
console.log(obj);
}
看看它给你的东西。然后,相应地提取您的值。