簡體   English   中英

您如何僅獲取使用 jQuery 滑塊而不是兩個手柄移動的滑塊手柄的值

[英]How do you ONLY get the value of the slider handle being moved with jQuery slider instead of both handles

我想用來自兩個句柄的值更新一個字段,但只能單獨更新。 每次手柄滑動時,Slider 都會在數組中返回這 2 個值,因此我的元素總是首先使用第一個手柄值更新,然后使用第二個手柄值更新,而不僅僅是滑動手柄的值。 我怎樣才能從做滑動的手柄中獲取值?

我嘗試為正在更新的輸入放置一個 onChange 函數,但由於某種原因它不起作用。

https://jsfiddle.net/xstatic/6jm2prwL/5/

HTML

<div id="slider">

</div>


<div id="response">

</div>

JS

  jQuery('#slider').slider({

  min: 0,
  max: 100,
  step: 1,
  values: [0, 100],
  slide: function(event, ui) {




    for (var i = 0; i < ui.values.length; ++i) {

      theresult(ui.values[i]);

    }

  }

});

function theresult(theresult) {

  jQuery('#response').html(theresult);


}

擺脫你的 for 循環。 相反,單獨調用每個結果。 所以而不是這個:

for (var i = 0; i < ui.values.length; ++i) {
    theresult(ui.values[i]);
}

做這樣的事情:

alert(ui.values[0]);
alert(ui.values[1]);

或者,如果您需要它們都轉到“響應”div,您可以單獨調用它們並將它們連接為這樣的字符串(而不是 for 循環或上面的兩個警報):

theresult(ui.values[0] + ',' + ui.values[1]);

其中任何一個都會為您提供個人價值。 您可以將各個值保存到變量中,並將它們與舊版本進行比較,看看它們是否發生了變化。 像這樣:

var min = 0;
var max = 100;
jQuery('#slider' ).slider({
  min: 0,
  max: 100,
  step: 1,
  values: [0, 100],
  slide: function(event, ui) {
    var newMin = ui.values[0];
    var newMax = ui.values[1];
    if (newMin != min) {
        theresult("Minimum changed: " + newMin);
      min = newMin;
    }
    else if (newMax != max) {
        theresult("Maximum changed: " + newMax);
      max = newMax;
    }
  }
});

function theresult(theresult) {
  jQuery('#response').html(jQuery('#response').html() + '<br>' + theresult);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM