2012-03-14 3 views
0

Tous, J'ai le code suivant:jQuery ne se charge pas dans DOM Window

$(document).ready(function() { 
// more code using $ as alias to jQuery 
alert('it works'); 
},'jQuery'); 

Lorsque la page se charge je reçois l'erreur suivante:

Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function

J'ai chargé jQuery avant J'ai essayé d'ajouter ceci.

Voici comment cela a été chargé (mon code est le custom.js):

<script type='text/javascript' src='http://localhost/oml_live_update/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/plugins/prettyphoto/js/jquery.prettyPhoto.js?ver=3.1.3'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/superfish.js?ver=1.4.8'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/flexslider.js?ver=1.8'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/roundabout.js?ver=1.1'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/assets/js/alyeska.min.js?ver=1.0'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/assets/js/custom.js?ver=1.0'></script> 

Des idées sur pourquoi cela ne fonctionne pas?

+0

Quand est-ce que vous chargez le script jquery avant ou après ce code? – Gabe

+0

Avez-vous ajouté le fichier jQuery avant ce code? –

+0

Vous faites quelque chose de mal. Peut-être que vous avez inclus le fichier jquery. Il travaille sur [jsfiddle] (http://jsfiddle.net/DD5jJ/) – Dips

Répondre

2
$(function() { 
    alert('it works'); 
}); 

Est-ce que cela ne fonctionne pas pour vous? Ceci est une syntaxe standard pour cela: http://api.jquery.com/ready/

Si vous voulez créer un Ia vie (expression de la fonction immédiatement invoquée):

(function ($) { 
    alert('it works'); 
})(jQuery); 

Cela crée un nouveau champ d'application pour le code à l'intérieur et passe dans l'objet jQuery comme $.

Mise à jour

Je n'utilise pas WordPress, mais je crois comprendre que $j=jQuery.noConflict(); est exécuté, si jQuery est essentiellement stocké dans la variable $j (si elle ne se fait pas automatiquement, alors il doit être fait manuellement):

<script type='text/javascript' src='http://localhost/oml_live_update/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script> 
<script> 
$j = jQuery.noConflict(); 
$j(function() { 
    alert('it works'); 
}); 
</script> 
... 

Notez également que vous pouvez passer $ dans la fonction anonyme qui est le gestionnaire d'événements document.ready afin que vous ne devez pas utiliser $j:

$j(function ($) { 
    alert('it works'); 
    //you can now use $() instead of $j() 
}); 

Mise à jour

Avez-vous essayé d'utiliser jQuery à la place de $?

jQuery(function($) { 
    alert('it works'); 
    //since `$` was passed into this function, it can be used instead of `jQuery` 
}); 
+0

Je l'utilise dans Wordpress donc je le fais en raison du noConflict que Wordpress a. – user1048676

+0

@ user1048676 Voir la ** mise à jour ** de ma réponse. Je ne sais pas si WordPress fait le '$ .noConflict()' seul ou si vous devez le faire. – Jasper

+0

@ user1048676 Check-out ma dernière ** mise à jour **. Vous devriez simplement pouvoir utiliser 'jQuery' à la place de' $ 'dans la portée globale. – Jasper

0

Le problème est probablement les versions en conflit. Utilisez

<script> 
    $.noConflict(); 
    $(document).ready(function() { 
    // more code using $ as alias to jQuery 
    alert('it works'); 
    }); //You dont need to pass the pass the extra 'jQuery' Parameter 
</script> 
0

J'ai eu un problème similaire,

dans mon cas, le menu superfish fonctionnait très bien, mais je voudrais quand même obtenir cette erreur.

i avait

<script> 
    $(document).ready(function(){ 
     $("ul.sf-menu").superfish({ 
      pathClass: 'current' 
     }); 
    }); 
</script> 

et Firebug rappelle l'pathClass.

TypeError: $("ul.sf-menu").superfish is not a function 
[Break On This Error]  

pathClass: 'current' 

Cela ne fonctionne pas pour vous, mais essayer de retirer cet appel tout le script, à savoir

<script> 
    $(document).ready(function(){ 
     $("ul.sf-menu").superfish({ 
      pathClass: 'current' 
     }); 
    }); 
</script> 

, il a travaillé pour moi, en essayant toujours de comprendre comment la lecture du menu, mais travaillé.Firebug ne me dérange pas, IE ne me dit pas qu'il n'est pas sécurisé.