2017-09-01 1 views
0

Ich versuche einen Schieberegler in meiner Meteor App zwischen 0 und 1 mit Schritt 0.001 zu erstellen und ich möchte nicht, dass der Schieberegler einen Standardwert hat und ich möchte den Griff nicht zeigen des Sliders, bis der Benutzer sich für einen Wert entscheidet. Ich bin neu in Meteor und Webentwicklung im Allgemeinen, also habe ich etwas Code kopiert und ich habe es bearbeitet, um meinen Kontext zu passen.Meteor JQuery und 'slider' Funktion

Meine JS-Datei sieht wie folgt aus

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

}); 

Template.game_task.onRendered(()=> { 

    /////// the slider stuff ////// 
    $("#slider").slider({ 
     min: 0, 
     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 
     } 
    }); 

    $('#slider > .ui-slider-handle').hide(); 


}); 

Dann meine HTML-Datei

<template name="game_task"> 
    <div id="slider"></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> 
    <input name="guess" id="guess" value="-1" hidden /> 
</template> 

Allerdings bekomme ich folgende Fehlermeldung:

Exception from Tracker afterFlush function: 
meteor.js?hash=6d285d84547b3dad9717a7c89c664b61b45ea3d8:942 TypeError: $(...).slider is not a function 
    at Blaze.TemplateInstance. 

Es scheint, dass ich nicht tun habe die .slider(..) Funktion? Obwohl ich JQuery in meinen Meteor-Paketen habe (es kommt standardmäßig).

+1

Slider ist Teil von jquery-Ui, die nicht mit Meteor standardmäßig verpackt afaik ist. Sie könnten versuchen, https://atmosphherejs.com/mizazzo/jquery-ui –

+0

@MichelFloyd danke! das hat funktioniert! Aber dieser Schieberegler verhält sich seltsamerweise an der unteren Grenze. Wenn ich zur 0 gehe, gehe ich auf 0.01 zurück und der Wert, den ich bekomme, ist null. Also kann ich nie 0 wählen. Das passiert nicht am höheren Ende. – amaatouq

+0

Warum posten Sie nicht eine andere Frage. –

Antwort

1

Schieberegler ist Teil von jquery-ui, die standardmäßig nicht mit Meteor verpackt ist afaik. Sie könnten versuchen mizzao:jquery