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 :

Lien menu ajax qui ne réagissent pas [AJAX]


Sujet :

jQuery

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Par défaut Lien menu ajax qui ne réagissent pas
    Bonjour tout le monde,

    J'ai besoin de réaliser une sorte de menu en ajax afin de pouvoir changer le contenu de la page sans la recharger, j'ai donc chercher tutoriel j'en ai testé pas mal mais j'ai un petit soucis, lorsque je clic sur mes liens il ne se passe rien du tout comme si le link était désactivé.
    Je pense que ca doit être un truc bidon...
    Ah oui et j'utilise wordpress, je fais appel à ce menu grâce à un shortcode (peut être le soucis ?)
    Je vous poste le code :

    Ma fonction wordpress :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    //MENU Ligue
    function menu_league() {	
     
    $retour ='<div id="menu">
        <ul id="nav">
            <li><a href="pages/?p=index">Index</a></li>
            <li><a href="pages/?p=cours">Cours</a></li>
            <li><a href="pages/?p=membres">Membres</a></li>
            <li><a href="pages/?p=contact">Contact</a></li>
        </ul>
    </div>
     
    <div id="contenu">
        <div>Contenu de la page "Index"</div>
    </div>';
     
    if(isset($_GET['p']) && !empty($_GET['p'])) {
        $p = htmlentities($_GET['p']);
     
        switch($p) {
            case 'index': $contenu = 'Contenu de la page "Index"';
            break;
            case 'cours': $contenu = 'Contenu de la page "Cours"';
            break;
            case 'membres': $contenu = 'Contenu de la page "Membres"';
            break;
            case 'contact': $contenu = 'Contenu de la page "Contact"';
            break;
            default: $contenu = 'Page inconnue';
            break;
        }
     
        $retour.= $contenu;
    }
    return $retour;
    }add_shortcode( 'menu_league', 'menu_league' );

    Et m fonction Ajax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $(document).ready(function() {
        var $contenu_div = $('#contenu div');
        var page = $('#nav li a:first').text(); // par défaut c'est Index
     
        // au clic sur un lien du menu
        $('#nav li a').on('click', function() {
            var url = $(this).attr('href'); // on récupère le href
     
            // on récupère le nom de la page demandée
            var pageDemandee = $(this).text();
     
            // si on appelle une page qui n est pas celle affichée
            if(pageDemandee != page) { 
     
                // on met en mémoire la page
                page = pageDemandee;
     
                // chargement dans la div
                $.ajax({
                    url: url,
                    cache: false,
                    success: function(html) {
                        $contenu_div.hide().html(html).fadeIn();
                    }
                });
            }
            return false;
        });
    });
    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonjour,
    tu définies une action sur des éléments qui n'existent pas encore dans le DOM, chargement via Ajax, regarde à mettre ton écouteur sur le conteur des éléments chargés.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Par défaut
    Bonjour NoSmoking, merci pour ta réponse, j'ai essayé de comprendre mais je n'y suis pas arrivé haha.

    - Les éléments qui n'existent pas encore dans le dom tu parlais du menu j'imagine ?

    - Mon écouteur ici c'est fadeIn() ? Et faudrait que je compte les éléments présent dans : $contenu_div

    (Je suis un peu largué dans ce langage j'vais essayer de me trouver des cours mais là c'était urgent : /)

    Cependant j'ai trouvé une solution alternative qui marche nikel je la poste pour les autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    function menu_ajax() {	
    	?>
       	<script>
    function show(form)
    {
    	if (form=="")
    	{
    		return;
    	}
     
    	else if (form=="start")
    	{
    	document.getElementById('FormArea1').style.display = 'block';
    		document.getElementById('FormArea2').style.display = 'none';
    	}
    	else if (form=="part")
    	{
    	document.getElementById('FormArea2').style.display = 'block';
    		document.getElementById('FormArea1').style.display = 'none';
    	}
     
    }
     	</script>
    <?php
     
    $retour='<select name="LeagueSelect" onchange="show(this.value)">
    	<option value="">- Select form -</option>
    	<option value="start">Argent</option>
    	<option value="part">Bronze</option>
     
    </select>
     
    <div id="FormArea1" style="display:none;">
     
    [show_ligue=argent]
     
    </div>
     
    <div id="FormArea2" style="display:none;">
     
    [show_ligue=bronze]
     
    </div>';
     
     
    return $retour;
     
    }add_shortcode( 'menu_league', 'menu_league' );

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    voir on() par délégation à partir du parent...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('parent').on('click','enfant', function(){ ... })
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] J'ai un script AJAX qui ne fonctionne pas
    Par beegees dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/10/2008, 16h21
  2. [AJAX] AJAX qui ne fonctionne pas sous IE
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/05/2008, 11h01
  3. Menu déroulant qui ne reste pas affiché sous ie6
    Par melanoche dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 07/12/2007, 15h08
  4. [W3C] Lien menu déroulant ne s'ouvre pas dans une nouvelle fenetre
    Par Kenshin86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/03/2007, 16h43
  5. [MFC] Menu flottant qui ne disparait pas
    Par EuZah dans le forum MFC
    Réponses: 4
    Dernier message: 23/01/2006, 16h59

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