2012-08-01 18 views
8

che sto ottenendo l'errore Uncaught TypeError: Object [object Object] has no method 'datepicker' nel mio javascript qui:oggetto non ha un metodo datepicker

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script> 
<script type='text/javascript'> 
$(function() { 
    $("#birthday").datepicker({changeMonth: true}); 
}); 
</script> 

Ecco la voce di compleanno che sto cercando di aggiungerlo:

<!--// BIRTHDAY //--> 
<li class="field"> 
    <label for="birthday">Birthday</label> 
    <div class="field"><input type="text" id="birthday" name="birthday" value="" class="" /></div> 
</li> 

Come si posso vedere, sto includendo il sorgente per jquery ui appena sopra dove sto cercando di usare il datepicker. Ho ricevuto l'URL da http://jqueryui.com/docs/Downloading_jQuery_UI quindi sono abbastanza sicuro che sia un URL valido. Ho anche provato a caricare il file e il collegamento alla copia locale e ho ancora lo stesso errore. Cos'altro posso provare?

EDIT:

Io ho la libreria jQuery caricato usando questo: <script type="text/javascript" src="/includes/js/jquery-1.7.2.min.js"></script> e verificato con questo po 'di script:

if (jQuery) { 
    alert("jQuery library is loaded!"); 
} 
+0

Prova a guardare nella finestra di ispezione del browser (Chrome Dev Tools, Firebug, ecc) - Ci sono errori 404? –

+1

come prova, prova: $ .noConflict() nel tuo documento pronto a vedere se le sue jqueries in conflitto –

+0

Funziona per me: http://jsfiddle.net/nyhCF/ – FishBasketGordo

risposta

23

Dalla nostra discussione, abbiamo scoperto che la variabile $ (un alias jQuery) non si comportava normalmente. Di solito, questo è dovuto al fatto che un altro plug-in JS ha modificato $ per rappresentare qualcos'altro. Per aggirare il problema, si può avvolgere il codice jQuery come questo:

jQuery(function($){ 
    //all jQuery code which uses $ needs to be inside here 
}); 

Questo cambierà il significato di $ nel campo di applicazione della funzione.

+1

Buona chiamata, amico! – user1477388

3

Si può avere un conflitto jQuery. Fare un tentativo in modalità noConflict in questo modo:

<script type="text/javascript"> 
    (function($) { 
     $(document).ready(function(){ 
      $("#datepicker").datepicker(); 
     }); 
    })(jQuery); 
</script> 
+1

È meglio collegare la risposta in un altro post sotto i commenti se la risposta è esattamente identica. – Arun

0
<script type="text/javascript"> 
(function($){ 
     var pickerOpts = { 
      // minDate: new Date(), 
      //maxDate: "+3m,", 
      showButtonPanel: true, 
      showOn: "button", 
      buttonImage: "images/cal.png", 
      }; 
    $("#birthday").datepicker(pickerOpts); 
     })(jQuery); 
</script> 

link source solution

1

$ funzionerà come

$(function($) { 
    $("#dateTasted").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     dateFormat: "yy-mm-dd"  
    }); 
}); 
Problemi correlati