2017-09-02 13 views
0

私の流星アプリにJQuery UIを使ってスライダーを作成しようとしていますが、ステップサイズが0.001の0と1の間の値があり、スライダーにデフォルト値を持たせたり、ユーザーは最初に値を決定します。JQuery UIスライダは0で動作しません。

Template.game_task.onCreated(()=>{ 
    if (!Session.get("sliderValue")){ 
     Session.setPersistent('sliderValue', -1) 
    } 

}); 

Template.game_task.onRendered(()=> { 

    /////// the slider stuff ////// 
    this.$("#slider").slider({ 
     min: -0.0000, 
     max: 1, 
     step: 0.01, 
     slide: function(event, ui) { 
      $('#slider > .ui-slider-handle').show(); 
      Session.setPersistent('sliderValue',ui.value) 
     }, 
     change: function(event, ui) { 
      //save value to collection 
     } 
    }); 

    if (Session.get("sliderValue") === -1){ 
     //if no value is set, then hide the handle 
     $('#slider > .ui-slider-handle').hide(); 
    } 

}); 

Template.game_task.helpers({ 
    getSliderValue(){ 
     const sliderValue = Session.get('sliderValue'); 
     if (sliderValue){ 
      console.log('slider value to be returned',sliderValue) 
      return sliderValue; 
     } 
    }, 

}); 

と、これはHTMLである:(Iは0に向けてスライダーを引っ張るとき)

<div class='row'> 
    <div id="slider" class="custom-handle"></div> 
    <span id="min">0</span> 
    <span class="quarter">0.25</span> 
    <span class="quarter">0.5</span> 
    <span class="quarter">0.75</span> 
    <span id="max">1</span> 
    <p class="contributionText">Your guess: {{getSliderValue}}</p> 
</div> 

しかし、スライダーが下限で奇妙な行動を与えています。私が0に行くと、私は小さい値(すなわち、0.01,0.016)になり、その後私が得た値はゼロになります(私のgetSliderValue()の機能は{{getSliderValue}}にあります)。

enter image description here

だから私は0を選択することはできなかっ午前..私はまた1

enter image description here

に行くように私が変更された場合、これは、かかわらず、高い終わりでは発生しません最小値を0以外の値に設定すると、下限値で正しい動作が得られます(ただし、私の場合は0にする必要があります)。

答えて

2

あなたの問題は、このコードである:

if (sliderValue){ 
    ... 
} 

あなたの値は0であるように、この条件はtrueではありません。あなたはこれにそれを変更する必要があります

if (sliderValue != null){ 
    ... 
} 
+0

改善: '場合(!!sliderValue == nullの&& typeof演算sliderValueが== '未定義')' – Jankapunkt

+0

それはあなたが見ていきます場合は、私のコードは:)意味を正確に何@Jankapunktそこに '!= null'があり、それがあなたのコードと同じであることがわかります。 – Styx

+0

混乱してしまいましたが、私は負の比較のため厳密な型検査を必要としないことを忘れていました。 sliderValue!= nullではこの場合十分です。 – Jankapunkt

関連する問題