IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

execution depuis un lien modifié


Sujet :

jQuery

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut execution depuis un lien modifié
    Bonjour,
    ca fait quelques heures que je cherche à résoudre mon problème en vain!!

    Pour info, je débute dans l'utilisation de jquery et ne suis pas une bête en javascript

    Donc mon probleme, depuis une page test.html simple, j'ai un lien auquel j'ai affecté une class (class1), celle-ci dans mon code jquery fait que si on clique sur un lien qui possede cette classe, fais disparaitre une div, met un nouveau contenu dans cette div (test1.html) et réaffiche cette div.

    Cela fonctionne bien, dans la page html affichée dans ma div, j'ai un nouveau lien, auquel j'ai ajouté la meme class, mais si je clique sur le lien, rien ne se passe!!

    ci dessous mes trois fichiers:
    test.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
    <head>
    <script src="/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="/jquery.fccoop13.test.js" type="text/javascript"></script>
    </head>
     
    <body>
     
    <div id="contenu1">
      <a class="class1" href="/test1.html">test niveau 1</a>
    </div>
     
    </body>
    </html>
    jquery.fccoop13.test.js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(document).ready(function(){
     
    $(".class1").click(function(){
    event.preventDefault();
     page=$(this).attr("href");
      $("#contenu1").fadeOut("slow",function(){
        $("#contenu1").load(page,function(){
         $("#contenu1").fadeIn("slow")
        })
      });
    });
     
    });
    et test1.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class="class1" href="/test1.html">test niveau 2</a>
    J'espere avoir été assez clair dans mes explication.
    Au pire, vous pouvez faire un copier coller des trois fichiers et essayer.


    Merci à ceux qui s'intéresseront à mon problème.

    TouFou

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Par défaut salut
    Pas besoin de copier coller lol

    test1.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="class1" href="/test1.html">test niveau 2</a>
    Tu n'a pas l'impression d'appeler la même page que la page où tu te trouve déjà ?

    c'est comme si depuis test.html tu rappelai test.html, c'est normal que rien ne se passe :/

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut
    Citation Envoyé par kesmo Voir le message
    Pas besoin de copier coller lol

    test1.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="class1" href="/test1.html">test niveau 2</a>
    Tu n'a pas l'impression d'appeler la même page que la page où tu te trouve déjà ?

    c'est comme si depuis test.html tu rappelai test.html, c'est normal que rien ne se passe :/
    Bonjour,
    Merci d'avoir répondu.
    J'ai pris en copte ta remarque, et j'ai essayé de mettre un lien vers une autre page, cela ne change rien, les efefts jquery ne s'affiche pas et suis redirigé vers la nouvelle page plutot que celle-ci soit ouverte dans la div de ma page appelante.

    Je vais regarder du coté de live, mais j'ai pas trop compris son interet ni comment ca fonctionne...
    Je fais quelques recherches/experimentations, et je vvous tiens au courant.

    Merci d'avoir répondu à vous deux.

    Bonne jourée,
    TouFou

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Je viens de tester avec live, cela ne change rien...
    Lorsque je suis dans test.html et que je clique sur le lien, j'ai bien un effet de fadeout + fadin avec la page test1.html qui apparait dans le div, et dans la barre d'adresse du naviguateur, c'est toujours test.html.

    Ensuite si je clique sur le nouveau lien (donc celui de test1.html), pas d'effet et la page test2.html apparait, ainsi que dans la barre d'adresse, comme si jquery n'etait plus actif du tout. (j'ai remplacé dans test1.html le lien pour aller vers la page test2.html).

    Le mieux pour vous rendre compte et que vous essayez.
    Voilà un lien pour telecharger les fichers de mon exemple, juste à decompresser et lancer test.html. Ensuite vous cliquez sur le lien et vous verrez l'effet qui ne fonctionnera plus sur le lien suivant qui apparait pourtant dans la meme div...
    fccoop13.free.fr/test/test.zip

    Dans ce même fichier, j'ai essayer avec live en mettant $(".class1").live("click", function(event){
    au lieu de
    $(".class1").click(function(event){
    et ce n'est pas mieux.

    Je sèche...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Par défaut
    c'est normal.

    En gros, dans ta premiere page test.html tu remplace ta div (contenu1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="contenu1">
      <a class="class1" href="test1.html">test niveau 1</a>
    </div>
    par html2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class="class1" href="test2.html">test niveau 2</a>
    et après tu donne plus d'instruction a part la class1.

    A mon avis il faut que tu te documente sur jquery en général et tu comprendra dans ton exemple comment ta div, définit par un id, appel une autre page lors d'un click sur <a href> définit par une class.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut
    Normalement je remplace pas ma div, mais son contenu, non?

    Normalement, c'est le contenu de la div seulement qui est remplacé par le code html de l'autre page ce qui fais que ma page principale doit passer de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="contenu1">
      <a class="class1" href="test1.html">test niveau 1</a>
    </div>
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="contenu1">
      <a class="class1" href="test1.html">test niveau 2</a>
    </div>

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Il suffit de modifier test1 et test2 comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Fichier test1.html :
    <a class="class1" href="test2.html">test niveau 2</a>
    <script src="jquery.fccoop13.test.js"></script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Fichier test2.html
    <a class="class1" href="#">test niveau 3</a>
    <script src="jquery.fccoop13.test.js"></script>
    live() : il ne s'applique pas ici.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Par défaut
    fallait lui laisser du temps pour qu'il comprenne son code, il aurait trouvé tout seul ^^

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut
    Ca marche!!!
    Ok, je sais pour vous deux, ça semble logique, perso, a le fait, merci!!

    La soluce est pourtant plutôt simple à mettre en oeuvre mais je ne comprends pas le fonctionnement....

    Je ne vois pas pourquoi il faut rappeler le script à chaque fois?
    Ma compréhension du système, c'est que lorsque je lance test.html, le moteur de jquery se lance, mon script aussi. Et je pensais que t'en qu'on restait dans test.html, les scripts étaient accessibles par les éléments de la page.
    Et là ou je dois me planter, c'est que je pensais aussi, que le code html de test1.html mis dans une div de test.html revenait au même que du code de test.html, mais visiblement, ce n'est pas le cas....et là je comprends pas du tout! pourquoi ce n'est pas le cas?

    J'espère que mon interrogation est compréhensible...

    Sinon, merci pour le coup de main,
    TouFou.

    ps: j'ouvre un autre post avec une question plus complexe d'ici quelques minutes

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Par défaut
    Me revoilà avec un gros souci!

    Je sais, j'ai pourtant dis: "ca marche!!", j'aurai du rajouter sous google chrome 4.0.266.0....

    Je viens de tester sous firefox 3.5.7, et là cela ne fonctionne pas.... une idée?


    edit: Je viens de tester avec opera 10.00.1413, cela fonctionne, et sous ie 6 cela ne fonctionne pas.

    A chaque fois, qand je dis que cela ne fonctionne pas, c'est les effet javascript/jquery qui ne se lance pas, les liens sont ouvert sans effets...

    Bonne journée,
    TouFou

  12. #12
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    L'erreur : « $ is not defined », signifie simplement que le framework jQuery n'est pas disponible à l'adresse indiquée dans votre code.

    Il faut sans doute l'inclure dans tous les fichiers HTML de votre exemple.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Execution d'un script VBA depuis un lien HTML
    Par Mattius007 dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 07/02/2008, 16h58
  2. Insérer du texte dans un champ depuis un lien (smiley)
    Par arnolem dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/04/2006, 11h27
  3. Appeler un fonction javascrit depuis un lien
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/04/2006, 08h53
  4. Ouvrir l'agenda Outlook depuis un lien
    Par Lina dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 06/03/2006, 12h00
  5. [BPW]Dialogues non modaux exécutés depuis un autre dialogue
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 07/12/2003, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo