150 votes

jQuery UI " $("#datepicker").datepicker est pas une fonction"

Lorsque j'utilise le DatePicker, jQuery UI plugin, dans un existant .page aspx, j'obtiens une erreur:

$("#datepicker").datepicker is not a function

Cependant, lorsque je fais un copier-coller le même code qui crée et utilise le datePicker pour un fichier HTML est aussi dans le même répertoire que la page aspx, il fonctionne parfaitement. Ce qui m'amène à supposer qu'il y a certains fichiers JS dans la page aspx qui empêche l'datePicker ou peut-être de jQuery UI JS fichiers pour charger correctement.

Quelqu'un peut confirmer mes croyances ou de fournir des conseils sur la recherche du coupable qui interfère avec jQuery UI plugins?

227voto

J'ai lutté avec un problème similaire pendant des heures. Puis, il s'est avéré que jQuery est inclus deux fois, une fois par le programme que j'ai été l'ajout d'une fonction jQuery et une fois par notre maison-dans le débogueur.

49voto

MacAnthony Points 2327

Si il y a une autre bibliothèque qui est à l'aide de la variable$, vous pouvez faire ceci:

var $j = jQuery.noConflict();
$j("#datepicker").datepicker();

Assurez-vous également que votre javascript sont dans le bon ordre afin de la bibliothèque de base jquery est défini avant le jquery.l'interface utilisateur. Je n'ai eu que causer des problèmes.

26voto

random Points 5411

Cette erreur apparaît généralement lorsque vous êtes absent un fichier à partir de l'INTERFACE utilisateur de jQuery ensemble.

Double-vérifier que vous avez tous les fichiers, l'INTERFACE utilisateur de jQuery fichiers ainsi que le CSS et les images, et qu'ils sont correctement liées fichier/répertoire sur votre serveur.

9voto

AutomatedTester Points 14713

Si vous pensez qu'il ya un conflit, vous pouvez utiliser jQuery.noConflict() dans votre code. Les détails sont dans les docs.

LE RÉFÉRENCEMENT DE MAGIE - DES RACCOURCIS POUR JQUERY

Si vous n'aimez pas taper le plein "jQuery" tout le temps, il y a quelques raccourcis alternatifs:

Réaffecter jQuery pour un autre raccourci var $j = jQuery; (Ce qui pourrait être le la meilleure approche si vous souhaitez utiliser les différentes bibliothèques) Utiliser les éléments suivants la technique, qui permet d'utiliser $ à l'intérieur d'un bloc de code sans définitivement écraser $:

(function($) { /* some code that uses $ */ })(jQuery)

Remarque: Si vous utilisez cette technique, vous ne serez pas en mesure d'utiliser Prototype des méthodes à l'intérieur de ce capsulée fonction qui attendent $ être Prototype de dollars, de sorte que vous faites un le choix d'utiliser uniquement jQuery dans le bloc. Utiliser l'argument de la DOM prêt de l'événement:

jQuery(function($) { /*some code that uses $ */ });

Note: Encore une fois, à l'intérieur de ce bloc, vous ne pouvez pas utiliser Prototype des méthodes

C'est à partir de la fin de la documentation et pourrait être utile pour vous

8voto

eKek0 Points 9861

Aller de l'évidence première: Êtes-vous bien le référencement jquery-ui.js fichier?

Essayez d'utiliser l'onglet réseau de firebug pour trouver s'il est chargé, ou de l'Information\Afficher le code javascript de la Web Developer Toolbar.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X