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 :

Pourquoi ma fonction ne fonctionne qu'une fois


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Pourquoi ma fonction ne fonctionne qu'une fois
    Bonjour

    J ai un index dont une partie du code est
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <div id="view">
        <span class="sp-link" data-sp-url="page_2">page 2</span>
        <p> <span class="sp-link" data-sp-url="page_3">page 3</span></p>
        <p>div view</p>
    </div>
    <!--  Scripts-->
    <script src="jquery.js"></script>
    <script>
        $(".sp-link").click(function() {
            var lurl = $(this).data("sp-url");
            $.get('pages/' + lurl + '.html', function(pageContent) {
                $('#view').html(pageContent);
            })
        });
    </script>

    Depuis mon index j appelle sans pb les pages 2 ou 3 mais quand j ai chargé le contenu dans ma div view cela ne fonctionne plus !,
    c est à dire que le click sur mes class="sp-link" chargee dans view ne chargent rien

    J ai tenté en modifiant le chargement comme ceci $('#view').load('pages/' + lurl + '.html'); mais toujours rien !

    Si dans mes pages chargées je mets un <a href="../index.html">Retour à l index</a> cela fonctionne...

    Un peu d aide serait bienvenue.
    merci
    Dernière modification par ProgElecT ; 27/04/2018 à 12h05. Motif: S'il vous plait, autant que possible, indiquer le langage utilisé, [CODE=xyz], pour activer la bonne coloration syntaxique.

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonjour, pour ton code qui ne "clique qu'une fois" essaye en changeant la premiere ligne par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('body').on('click', '[class="sp-link"]', function() {
    La methode .load() est deprecated

    que t'indique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $.get('pages/' + lurl + '.html', function(pageContent) {
              alert(pageContent);
            });

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci, cela fonctionne

    ce qui m est indiqué c est
    [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
    mais j avais cherché sur http://api.jquery.com et n ai pas trouvé qu elle etait depreciated...

    Par quoi devrais-je la remplacer alors mon but etant de changer dynamiquement le contenu d une div

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Citation Envoyé par rooky06 Voir le message
    Par quoi devrais-je la remplacer alors mon but etant de changer dynamiquement le contenu d une div
    en jQuery = $.load() => http://api.jquery.com/load/

    en Javascript = fetch() => https://developer.mozilla.org/fr/doc...PI/Using_Fetch
    ( https://caniuse.com/#search=fetch )

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Ce code fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $('body').on('click', '[class="sp-link"]', function() {
            var lurl = $(this).data("sp-url");
     
            $('#view').load('pages/' + lurl + '.html');
    });
    A noter que $.load() peut prendre en parametre une fonction callback

  6. #6
    Invité
    Invité(e)
    Par défaut
    merci à tous

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/10/2010, 20h49
  2. [AJAX] Méthode sous Ajax qui ne fonctionne qu'une fois?
    Par patrice419 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2007, 13h19
  3. Réponses: 2
    Dernier message: 26/06/2006, 13h43
  4. Pourquoi ce popup s'ouvre qu'une fois ?
    Par psychoBob dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 01/06/2006, 12h11
  5. allocation dynamique ne fonctionne qu une fois.
    Par michael urbain dans le forum C
    Réponses: 7
    Dernier message: 11/03/2006, 10h51

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