Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2011, 11h55   #1
Membre régulier
 
Avatar de Johann7751
 
Johann
Analyste Programmeur Junior
Inscription : février 2009
Messages : 216
Détails du profil
Informations personnelles :
Nom : Johann
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Analyste Programmeur Junior

Informations forums :
Inscription : février 2009
Messages : 216
Points : 98
Points : 98
Par défaut Impossible d'appeler une fonction javascript externe, dans $(document).ready

Bonjour,


J'utilise le language JQUERY avec ASP.NET.
J'ai des problèmes depuis que j'essaye d'externaliser le code dans un fichier .js.

Un de me soucis est le suivant :
Je n'arrive pas à appeler une fonction (se trouvant à l'intérieur d'un fichier .js)
dans la fonction :
$(document).ready(function () {});

C'est normal ?
Est ce dû au fait que mon fichier .js n'est peut être pas chargé à ce moment ?


Voici le détail de mon code :

fichier .JS
Code :
1
2
3
function toto() {
    alert("hello world");
}
Fichier ASP.NET
C'est un UserControl (c'est donc un .ascx au lieu d'un .aspx)
J'ai inclus la bibliothèque JQUERY, au niveau supérieur dans le fichier .aspx.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Test.ascx.cs" Inherits="UserControls_Test" %>
<link href="/style/admin.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="TestJS.js"></script>
 
//...
// Des balises HTML ..
//...
 <script type="text/javascript" language="javascript">
    $(document).ready(function () {
                toto();
     });
</script>
Grâce au debugger; , j'arrive à voir où ça plante.
C'est au niveau de l'appel à la fonction toto() .
La bibliothèque JQUERY me catch une erreur :
"La valeur de la propriété « toto » est null ou non définie, pas un objet Function"

Merci de votre aide.
Johann7751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 17h58   #2
Invité de passage
 
Inscription : janvier 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 9
Points : 3
Points : 3
pas de 404 avec ton debugger?
il se passe quoi si tu tapes toto() dans la console ?
tominardi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 19h44   #3
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Logiquement, ce genre d'erreur signifie que le fichier contenant la fonction toto() n'est pas inclus dans la page web. Vérifier le nom du fichier, attention aux majuscules et minuscules dans le nom du fichier et au chemin pour accéder au fichier.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 19h46   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
testé de mon coté ça fonctionne ...
souci de path vraissemblablement

si tu mets
Code :
alert('je charge le js externe !')
en première ligne de ton js externe il se passe quoi ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 19h50   #5
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Et si tu charge jquery "de manière classique" juste avant tes autres fonctions JS

Code :
1
2
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="TestJS.js"></script>
c'est pareil ? parce que chez moi ça fonctionne correctement et je peux appeler des fonctions de "TestJS.js" depuis $(document).ready(function () {});

Sinon question subsidiaire, pourquoi as-tu des balises html avant tes fonctions jquery ? Normalement tu devrais pouvoir mettre ton
Code :
$(document).ready(function () {});
juste après tes balises
Code :
<script type="text/javascript" src="TestJS.js"></script>
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 10h02   #6
Membre régulier
 
Avatar de Johann7751
 
Johann
Analyste Programmeur Junior
Inscription : février 2009
Messages : 216
Détails du profil
Informations personnelles :
Nom : Johann
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Analyste Programmeur Junior

Informations forums :
Inscription : février 2009
Messages : 216
Points : 98
Points : 98
Merci pour toutes vos réponses.
C'était bien un problème de path.


Le fichier JS et .ascx appelant sont situés dans le même dossier "UserControls".
Le fichier .aspx appelant le fichier .ascx se situe dans un dossier, "MonDossier1" au même niveau que le dossier "UserControls".

Ainsi dans mon fichier .ascx :
Code :
<script type="text/javascript" src="TestJS.js"></script>
ne fonctionne pas.

alors que :
Code :
<script type="text/javascript" src="../UserControls/TestJS.js"></script>
=> Je remonte d'un niveau, je redescends dans mon dossier UserControls
fonctionne (mon fichier js est bien appelé)


Pourquoi ...?
Je pense qu'en fait en référençant le fichier TestJS.js dans mon Usercontrol (.ascx), il faire comme si on était dans la page (.aspx) appelant le Usercontrol.
Donc indiquer le chemin relatif à partir de la page, et non le chemin relatif à partir du Usercontrol.
J'aurais pu travailler en chemin absolu aussi ..
J'ai pas testé cette hypothèse, donc à confirmer.

Merci de m'avoir mis sur la voie. Du coup c'était plus un problème lié à ASP.NET.
Johann7751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h32.


 
 
 
 
Partenaires

Hébergement Web