【问题标题】:JQuery call input value from another function asyncJQuery 从另一个函数异步调用输入值
【发布时间】:2017-03-15 10:21:23
【问题描述】:

为此使用离子范围滑块。我正在尝试调用我设置为记录缩放的美化函数的值。我的日志缩放有效,但是当我尝试将其调用回我的其他异步函数时,我无法获得相同的结果。

我希望我从 prettify 函数得到的结果通过 onStart、OnChange、onFinish 函数。

onStart: function(data) {
    imprValue = data.from;
  console.log("onstart:" + imprValue);
    inputValues();
 },
 onChange: function(data) {
    imprValue = data.from;
   console.log("onchange:" + imprValue);
    inputValues();
 },
 onFinish: function(data) {
   imprValue = prettify();
   console.log("onfinish:" + imprValue);
   inputValues();
 },
 prettify: function(n) {
  // current position
  var position = Math.floor(n / this.max * 100);
  // position will be between 0 and 100
  var minPos = 0,
      maxPos = 100;
  // calculate logarithms
  var minLog = Math.log(this.min),
      maxLog = Math.log(this.max);
  // calculate adjustment factor
  var scale = (maxLog-minLog) / (maxPos-minPos);
  // round numbers
  n = Math.floor(Math.exp(minLog + scale * (position - minPos)));
  console.log("prettify function:" + n);
  return n;
 }

在这里: http://jsfiddle.net/jsbegin/7dbowqfd/61/

【问题讨论】:

  • 我对你在问什么感到困惑。您没有在onStartonChange 中调用prettify。为什么不呢?
  • 我只是一次测试一个开始。我自己找到了答案并贴在下面

标签: javascript jquery asynchronous ion-range-slider


【解决方案1】:

得到这个工作,想发布它以防其他人正在寻找。

你需要这样称呼它:

imprValue = this.prettify(data.from);

在这里工作 jsfiddle:http://jsfiddle.net/jsbegin/7dbowqfd/68/

【讨论】:

    【解决方案2】:

    您应该知道,内置美化功能只是为了在视觉上改善滑块值。不影响原始数据。

    如果你也想转换原始数据,你应该创建外部函数。像这样:

    var $range = $(".js-range-slider");
    var $result = $(".js-result");
    
    function transform(num) {
        var n = num.toString();
        return n.replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + ",");
    }
    
    $range.ionRangeSlider({
        type: "single",
        grid: true,
        min: 10000,
        max: 10000000,
        from: 10000,
        prettify_separator: ",",
        onStart: function(data) {
            $result.text(transform(data.from));
        },
        onChange: function(data) {
            $result.text(transform(data.from));
        }
    });
    

    小提琴:http://jsfiddle.net/IonDen/133bvhn3/

    【讨论】:

    • 感谢 Denis,感谢出色的 Ion Rangeslider
    猜你喜欢
    • 2020-03-04
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 2016-09-06
    • 2017-10-18
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多