范围ui滑块

时间:2017-05-16 14:45:40

标签: javascript jquery cordova meteor nouislider

我在ios和android上查看范围uislider时遇到问题 在使用meteor和cordova的应用程序中,在下面的视频中,我将详细介绍。当在浏览器中移动滑块工作但在ios和android中我无法可视化获得的范围。 enter image description here

我有以下代码: 尝试使用jquery,因为您可以看到代码已注释,但我没有得到结果

Template.range.onRendered(function () {

  $(function () {
    $('#slider-edad').noUiSlider({
      start: [18, 30],
      step: 1,
      range: {
        'min': 18,
        'max': 60
      }
    });
  });

  $(function () {
    $('#range').noUiSlider({
      start: [10],
      step: 2,
      range: {
        'min': 10,
        'max': 100
      }
    });
  });

  //  km();
});

function km(instance) {
  // $('.km-range').html('');
  // Session.set("Kilometros", '');
  var d1 = $('#range').val();
  var d0r = parseInt(d1);
  console.log('Kilometros: ', d0r);
  instance.km1.set(d0r);
  // Session.set("Kilometros", d0r);
  // $('.km-range').html(d0r, 'Km');
}

Template.range.events({
  'click #range': function (event, instance) {
    console.log('click');
    km(instance);
  },
});

1 个答案:

答案 0 :(得分:0)

经过长时间的聊天和多次尝试后,原来是click事件,这使得noUiSlider无法在移动设备上运行。

因此检查noUiSlider events page并将其放入一些反应变量中,我们运行了以下代码:

import { Template } from 'meteor/templating';
import { ReactiveDict } from 'meteor/reactive-dict';

//import template html file

Template.findme.onCreated(function (){
    this.state = new ReactiveDict();

    // set start values
    this.state.set("km", 10);
    this.state.set("agemin", 18);
    this.state.set("agemax", 30);
});


Template.findme.onRendered(function() {

    if (!this._rendered) {
        this._rendered = true;


        // create slider
        $('#slider-edad').noUiSlider({
            start: [ 18, 30 ],
            step: 1,
            range: {
                'min': 18,
                'max': 60
            }
        })

        $('#range').noUiSlider({
            start: [ 10 ],
            step: 2,
            range: {
                'min': 10,
                'max': 100
            }
        });
    }

});

Template.findme.helpers({
    KilosM: function(){
        return Template.instance().state.get("km");
    },

    agemin: function(){
        return Template.instance().state.get("agemin");
    },

    agemax: function(){
        return Template.instance().state.get("agemax");
    },
});


Template.findme.events({
   'slide #slider-edad':function(event,instance) {
       var d2= $('#slider-edad').val()
       var d0 = parseInt(d2[0]);
       var d1 = parseInt(d2[1]);
       console.log(d0,d1);
       instance.state.set("agemin", d0);
       instance.state.set("agemax", d1);
   } ,

    'slide #range': function(event , instance) {
        var d1= $('#range').val();
        var d0r = parseInt(d1);
        console.log('Kilometros: ',d0r);
        instance.state.set("km", d0r);
    },
});

和html模板:

 <div class="">
    <span class="edad-range0">{{agemin}}</span>
    <span class="edad-title"> Age </span>
    <span class="edad-range1">{{agemax}}</span><br>
    <div id="slider-edad"></div><br><br>
  </div>