Changewheel功能如何工作?

时间:2013-01-21 17:30:08

标签: javascript jquery mobiscroll

首先,我要分享我对这个片段所做的惊人工作的赞赏(这真的是一个很酷的工具)。

我正在尝试在我正在开发的应用中使用mobiscroll。我喜欢使用和自定义mobiscroll工具是多么容易。

我真正发现的只是模糊不清,如何使用功能changeWheel 。我尝试过很多东西,但从未取得成功。

我想要完成的是改变第一个轮子的值(完全改变并重新生成第一个轮子),当我在我的第二个轮子中选择时(实际上我想要的是一个改变事件)两个中的一个参数存在。

我构建了一个为两个轮子创建数组的函数,并且相对于返回的第二个轮子的索引更改了第一个轮子的数组。 (我可以看到该功能有效,并且它为轮子生成了确切的值)。

然后我可以使用函数转换器在inst上使用onchange事件来实现它

这个功能改变轮是否可以做我正在寻找的东西?

非常清楚,以此为例:

一个人的第一轮重量 第二轮测量单位(kg或Lbs)

如果我将现场Lbs更改为Kg,我希望第一个轮子反映更改(更新可用值) - 例如,如果我将限制重量设置在0到80kg之间,则lbs中的对应值需要介于两者之间0和177lbs(整个转换与另一个自定义函数分开处理,它完全按照我的意愿工作)。

我无法弄清楚如何实现改变轮事件....一个例子或更深层次的解释将非常有用。

非常感谢你 最好 Dinuz

2 个答案:

答案 0 :(得分:0)

这里有一个简单的解释,如果你想更新一个不同的值你需要传递mobiscroll的实例并调用方法选项

$(function(){
         var filtersMetrics = [{}];
        var wheelPosMetrics = []
        var wheelPosFunc1 = [];
        var wheelPosFunc = [];

        wheelPosMetrics[0] = "Connection";
        wheelPosMetrics[1] = "Shared";
        wheelPosMetrics[2] = "Deleted";

        filtersMetrics[0]['Metrics']=wheelPosMetrics;

        wheelPosFunc1[0] = "Count";

        wheelPosFunc[0] = "Count";
        wheelPosFunc[1] = "Sum";
        wheelPosFunc[2] = "Avg";

        filtersMetrics[0]['Func']=wheelPosFunc1;


        var metricsScroller = $("#select").mobiscroll().scroller({
            theme : 'android',
            display : 'inline',
            mode: 'scroller',
            wheels: filtersMetrics,
            rows: 3,
            'onChange' : function(v, i , e){


                if(v[0]==1){
                    filtersMetrics[0]['Func']=wheelPosFunc;
                    metricsScroller.mobiscroll('option', 'wheels', filtersMetrics); 
                }else{
                    filtersMetrics[0]['Func']=wheelPosFunc1;
                    metricsScroller.mobiscroll('option', 'wheels', filtersMetrics);
                }



            }
        });

});

我使用的是2.5版本

答案 1 :(得分:0)

我也无法让changeWheel工作,但我找到了解决方法(我使用的是Mobiscroll v2.15.1)。

在onChange-Handler中,您可以设置dynamicaly的默认值:

.
.
.
onChange: function (values) {

   // here your logic for the current values            

   if (/*here your condition*/) {

      // Example for three wheels:      
      var curWheel = ["1", "2", "3"];

      // set the default values
      $(/*your element*/).mobiscroll("setArrayVal", curWheel, true);
    }
},
.
.
.