2014-07-23 24 views
5

Ho controllato tutte le domande su SO e non riesco a trovare la risposta. Se inserisco numeri interi direttamente nei campi, funziona ma desidero impostare i parametri dinamicamente quando imposto il mio scriptCursore UI JQuery Unchaught TypeError: Impossibile leggere la proprietà 'addClass' di undefined

Sto eseguendo JQuery 1.11.1, JQuery UI stable (1.11.0) e touchpunch. Ho eseguito il debug e le variabili sono tutte presenti e inizializzate quando viene invocato. Ho anche provato a completare le funzioni autoeseguite con gli stessi risultati.

(La funzione di scorrimento può essere ignorato)

Questo genera l'eccezione

EDIT Ho appena notato che se clicco sul cursore viene generata l'eccezione, ma se poi si preme il diritto tasto freccia non viene generata alcuna eccezione e l'importo viene popolato con la proprietà value. Ho incollato l'output della console alla fine della domanda.

$("#slider").slider({ 
      value: parseInt(window.settings.principal.minimum), 
      min: parseInt(window.settings.principal.minimum), 
      max: parseInt(window.settings.principal.maximum), 
      step: parseInt(window.settings.principal.increment), 
      slide: function(event, ui) { 
       $("#amount").val("$" + $("#slider").slider("value")); 
      } 
     }); 

Tuttavia questo funzionerà

$("#slider").slider({ 
      value: 500, 
      min: 500, 
      max: 10000, 
      step: 500, 
      slide: function(event, ui) { 
       $("#amount").val("$" + $("#slider").slider("value")); 
      } 
     }); 

uscita Console

jQuery("#slider").slider("value"); 
5000 
jQuery("#slider").slider("min"); 
Error: no such method 'min' for slider widget instance 
jQuery("#slider").slider("minimum"); 
Error: no such method 'minimum' for slider widget instance 
jQuery("#slider").slider("max"); 
Error: no such method 'max' for slider widget instance 
jQuery("#slider").slider("interval"); 
Error: no such method 'interval' for slider widget instance 
jQuery("#slider").slider("step"); 
Error: no such method 'step' for slider widget instance 
jQuery("#slider").slider("values"); 
[] 
+0

Assegna un altro sguardo alle variabili ('window.settings.principal. *'). Ho appena copiato il codice sorgente, sostituito con il mio e ha funzionato. – Chris

+0

Sicuramente se sono definiti nel momento in cui viene chiamata la funzione $ ("slider") sono ok? Stai usando le stesse versioni di libreria? – SMC

+0

Ci scusiamo per il fatto che il massimo era inferiore al valore iniziale, erano interi e venivano analizzati correttamente. Vorresti pubblicare una risposta o dovrei semplicemente cancellare la domanda? – SMC

risposta

2

Lascia la tua variabili (window.settings.principal.*) un altro sguardo. Ho appena copiato il codice sorgente, li ho sostituiti con i miei e ha funzionato, quindi il tuo codice sembra andare bene. Assicurati che non siano solo numeri validi, ma che abbiano un senso nel contesto.

+7

Il problema si è rivelato essere il mio numero intero massimo inferiore al valore iniziale, quindi diversamente da tutti gli altri problemi in cui il problema sta fornendo variabili non intere, il mio problema era fornire variabili intere errate :) – SMC

0

Ho avuto lo stesso problema. Solo su una base di errore di prova n, ho scoperto che il problema si trova all'interno della funzione parseInt(). Ho rimosso la funzione e appena usato i dati grezzi:

$("#slider").slider({ 
    value: window.settings.principal.minimum, 
    min: window.settings.principal.minimum, 
    max: window.settings.principal.maximum, 
    step: window.settings.principal.increment 
}); 

Sembra che stiamo copiando un vecchio pezzo di frammento per il cursore. Non ho idea di cosa ci sia di sbagliato in parseInt() in questa configurazione, dato che non sono così tecnico, ma spero che questo aiuti gli altri.

Problemi correlati