2012-05-25 23 views
9

jQuery-UI 1.7を使用して、スライダを統合しました。すべてうまくいきますが、スライダのハンドルはドラッグしながら重なっています。どうすればこれを防ぐことができますか?jQueryのUIスライダの重複を避けるにはどうすればいいですか?

あなたはここに私のUIのスライダーを見ることができます

デフォルトビュー:

enter image description here

オーバーラップビュー:

enter image description here

答えて

24

あなたはslideで重複を検出することによって、これを達成することができますイベントハンドラを返し、スライドが発生しないようにfalseを返します。 。例:この例で20の値は単にハンドルの幅に基づいて、ハードコードされていることを

$("#slider-range").slider({ 
 
    range: true, 
 
    min: 0, 
 
    max: 500, 
 
    values: [ 75, 300 ], 
 
    slide: function(event, ui) { 
 
     if ((ui.values[ 0 ] + 20) >= ui.values[ 1 ]) { 
 
      return false; 
 
     } 
 
    } 
 
});
body { padding: 50px; }
<link href="http://code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet"> 
 
<script src="http://code.jquery.com/jquery-1.11.1.js"></script> 
 
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.js"></script> 
 
<div id="slider-range"></div>
注意。ユースケースごとに、それを意味のあるものに変更する必要があります。

+0

ありがとうございました。スライダをドラッグすると、スライダが重なり合っています。それは私の質問です。 – Hearaman

+0

Gotcha、私はこれに対処するために私の答えを更新しました。 –

0
<script> 
    $("#slider-range").slider({ 
     range: true, 
     min: 0, 
     max: 500, 
     values: [ 75, 300 ], 
     slide: function(event, ui) { 
      if ((ui.values[0] + 55) >= ui.values[1]) { 
       return false; 
      } 
     } 
    });​ 
</script> 
関連する問題