2013-08-01 3 views
0

Je veux que le pour empêcher l'animation du curseur pendant l'actualisation de la page, mais l'autoriser pendant le fonctionnement de mon programme.Définir une variable globale dans le curseur jquery-ui?

Je suis presque:

// Initialise var animate as false 
var animate = false; 

// Jquery UI 
function slider(min, max, step) { 
         $(target_slider).slider({ 
          min: min, 
          max: max, 
          range: "min", 
          step: step, 
// var animate set to false on load, so no animation from this guy: 
          animate: animate, 
// var animate now set to true to allow animation every time slider is changed from now on: 
          var animate = true; 
          slide: function (event, ui) { 
           console.log("slider is moving!"); 
           }; 
          }, 
         }); 
        } 

// Initialise slider 
slider(0, 200, 0.01); 

Cependant, le code sur la ligne 13 qui tourne Animer var true est considéré et syntaxiquement incorrect par l'interface utilisateur jquery, alors comment puis-je changer la variable « Animer »?

Je suis encore un peu fragile avec la portée de javascript. Si l'interface utilisateur de jquery acceptait mon changement de variable, ma logique fonctionnerait-elle? Je suppose que ce serait parce que var animate est d'abord déclaré dans la portée mondiale, mais s'il vous plaît corrigez-moi si je me trompe!

Répondre

1

vous voulez changer la valeur de animate après l'initialisation du curseur:

... 
slider(0, 200, 0.01); 
animate = true; 
... 

En outre, après une variable est définie, vous n'avez pas besoin d'utiliser le mot-clé var pour y accéder. Après avoir consulté la documentation de l'API, vous pouvez utiliser la méthode setter pour définir la propriété animate après l'initialisation. Essayez ceci:

function slider(min, max, step) { 
    $(target_slider).slider({ 
     min: min, 
     max: max, 
     range: "min", 
     step: step, 
     animate: false, 
     slide: function (event, ui) { 
      console.log("slider is moving!"); 
     } 
    }); 
} 

// Initialise slider 
slider(0, 200, 0.01); 
$(target_slider).slider('option', 'animate', 'fast'); 
+0

Êtes-vous 100% sûr à ce sujet? Je pense qu'une fois jQuery ui slider est appelé, il agit comme une cellule, complètement aveugle même aux variables globales. La "vraie" valeur de l'animation n'entrera jamais dans la fonction si je le fais. Je pense. J'ai essayé et ça n'a pas marché de toute façon. Merci pour les mises en garde concernant la réinitialisation variable! – Starkers

+0

@Starkers Vous avez raison. Après l'initialisation, la variable n'aurait aucun effet sur le curseur. Vérifier mes mises à jour La méthode setter est la façon dont vous devrez accomplir votre tâche. – Joe

+0

Ah. Bonne suggestion, mais ça ne semble toujours pas fonctionner. Il s'anime en charge initiale, malgré la méthode de réglage qui vient après l'initiateur! Un jsfiddle serait-il hors de question? Merci beaucoup – Starkers

Questions connexes