2010-10-15 5 views
3

Используя jQuery UI Slider, я пытаюсь выяснить, как сделать это так, чтобы ползунок переставал работать после выполнения определенных условий. Есть идеи? Я думал, что остановка распространения событий в «стартовой» части будет работать, но ... это не так. Поэтому я до сих пор невежественна и потеряна.jQuery UI Slider, останавливается, если выполняются определенные условия.

<script type="text/javascript"> 
    $(document).ready(function() { 
     var spendable = 1000; 
     var spent = 0; 

     function spend(quantity) { 

      var remaining = spendable - quantity; 
      $('#spendable').text(remaining); 
     } 

     $("#eq .slider").each(function() { 
      var current = 0; 
      $(this).slider({ 
       range: "min", 
       step: 100, 
       value: 0, 
       min: 0, 
       max: 500, 
       animate: true, 
       orientation: "horizontal", 
       start: function (event, ui) { 
        if (spent < spendable) 
         return true; 
        event.stopPropagation(); 
       }, 
       slide: function (event, ui) { 
        // set the current value to whatever is selected. 
        current = ui.value; 
        $(this).parent('div:eq(0)').find('.spent').text(current); 

        var totalled = 0; 
        $("#eq .slider").each(function() { 
         totalled += parseInt($(this).parent('div:eq(0)').find('.spent').text()); 
         spend(totalled); 
        }); 
       } 
      }); 
     }); 

ответ

7

Try:

.....

slide: function (event, ui) { 
        // set the current value to whatever is selected. 
        current = ui.value; 
        if(current > 300){ 
         current = 300; //otherwise, it's stuck at 301 
         return false; 
        } 

        ....rest of your code 
+1

Hrnm. Это технически работает, но полностью блокирует слайдеры. Любая идея о том, как я все еще могу позволить это вычесть из одного? – Ciel

+0

@Stacey - Попробуйте установить текущую переменную в 300 (или независимо от вашего значения) перед возвратом false. Это должно сработать. – tpow

+1

@Stacey - возвращаемое значение false также вызывает событие «Стоп», которое вы можете использовать для разблокировки слайдера или сброса его. – tpow

Смежные вопросы