2010-10-15 6 views
3

En utilisant le curseur de l'interface utilisateur jQuery, j'essaie de comprendre comment faire pour que le curseur cesse de fonctionner une fois que certaines conditions sont remplies. Des idées? Je pensais que l'arrêt de la propagation de l'événement dans la partie "début" fonctionnerait, mais ... ce n'est pas le cas. Donc je suis toujours désemparé et perdu.Curseur jquery ui, arrêter de glisser si certaines conditions sont remplies

<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); 
        }); 
       } 
      }); 
     }); 

Répondre

7

Essayez:

.....

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. Cela fonctionne techniquement, mais il verrouille complètement les curseurs. Une idée sur comment je pourrais encore permettre de soustraire à un? – Ciel

+0

@Stacey - Essayez de définir la variable actuelle à 300 (ou quelle que soit votre valeur) juste avant de retourner false. Cela devrait fonctionner. – tpow

+1

@Stacey - return false déclenchera également l'événement "Stop", que vous pourrez utiliser pour déverrouiller le curseur ou le réinitialiser. – tpow

Questions connexes