在幻灯片函数中使用jquery ui参数的jquery自定义滑块(?)

时间:2014-06-22 09:06:54

标签: javascript jquery jquery-ui slider

目前我使用默认的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未定义。

enter image description here

我的猜测是它与Jquery UI有关,但它包含在页面中: enter image description here

任何想知道怎么解决这个问题的人?对不起,我对此很陌生。

2 个答案:

答案 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);
}

看看它给你的东西。然后,相应地提取您的值。