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 :

live() et ie 6


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut live() et ie 6
    Bonjour,

    Je solliciterais votre aide pour petit problème avec la fonction live de JQUERY.

    Le chargement des boutons se fait via des Classes
    Info important : une fois la page chargé elle ne se recharge plus la navigation se fait entièrement en JQuery.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).ready(function ()
    {
        $('.goPager').live("click", function ()
        {
            .....
            return false;
        });
    });
    Ce code est chargé en début de page dans un fichier JS

    Lorsque je veux appeler cette fonctionne je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class='goPager' href='$xhr2' >blabla </a>
    Cela fonctionne très bien sur tout les navigateurs sauf IE6, pour que cela fonctionne je dois instancié le bouton avant de l'utiliser dans la page en dessous du code ou je veux l'utiliser.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language='javascript' type='text/javascript'>
    $(document).ready(function ()
    {
        $('.goPager').live('click', function ()
        {
        	alert(2)
            return false;
        });
    });
        </script>
    <a class='goPager' href='$xhr2' >LIEN 1 ...</a>";
    Mais si le bouton est instancié une fois au lancement de page il ne le reconnait pas.
    J'ai testé avec Bind même résultat.

    Avez-vous une idée ?

    Je c'est bien que IE6 est obsolète mais helas il y a encore des gens qui l'utilisent ...

    Merci pour votre aide

  2. #2
    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
    regarde du coté de on() ou delegate()
    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 !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Je c'est bien que IE6 est obsolète mais helas il y a encore des gens qui l'utilisent ...
    Oh oui ! 0.5% quelle popularité !

    .live() n'a aucune utilité si le contenu des pages n'est pas dynamique...

    Quelle version de jQuery utilises-tu ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut
    Merci pour vos réponses, voici pour être plus précis le code complet.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
     /**
    ####################
    #v 1.2
    #01/09/2011
    <a class='goXhrLink' href='' data-divdest='' data-godiv='' data-notymsg=''></a>
    ####################
    **/
        $('.goXhrLink').live("click", function ()
        {
            if (typeof ($(this).data('confirm')) != 'undefined' && !confirm($(this).data('confirm'))) return false;
            var data_type = (typeof ($(this).data('datatype')) == 'undefined') ? 'text' : $(this).data('datatype');
            //writeInConsole("Lien XHR JQ : lien => " + $(this).attr('href') + " div => " + div);
            //------------------
            var objTXT = {
                godiv: $(this).data('godiv'),
                divdest: $(this).data('divdest'),
                deldiv: $(this).data('deldiv'),
                reload: $(this).data('reload'),
                closebox: $(this).data('closebox'),
                notymsg: $(this).data('notymsg'),
                notytype: $(this).data('notytype'),
                lienxhr: $(this).data('lienxhr'),
                lienxhrdiv: $(this).data('lienxhrdiv'),
                insertappend: $(this).data('insertappend'),
            }
            $.ajax(
            {
                type: (typeof ($(this).data('methode')) != 'undefined') ? $(this).data('methode') : 'GET',
                url: $(this).attr('href'),
                cache: false,
                success: function (objJSON)
                {
                    obj = (data_type == 'text') ? objTXT : objJSON;
                    if (data_type == 'text')
                    {
                        if (typeof (objTXT.insertappend) != 'undefined')
                        {
                            $("#" + obj.divdest).append(objJSON);
                        }
                        else
                        {
                            $("#" + obj.divdest).html(objJSON);
                        }
                    }
                    $(document).ready(function ()
                    {
                        if (typeof (objTXT.godiv) != 'undefined' && document.getElementById(objTXT.godiv))
                        {
                            $('html,body').animate(
                            {
                                scrollTop: $("#" + objTXT.godiv).offset().top
                            }, 'fast');
                        }
                        if (typeof (obj.notymsg) != 'undefined' && obj.notymsg != '')
                        {
                            noty(
                            {
                                'text': obj.notymsg,
                                'layout': (typeof (obj.notylayout) != 'undefined') ? 'top' : obj.notylayout,
                                'type': (typeof (obj.notytype) != 'undefined') ? 'info' : obj.notytype,
                                'animateOpen': {
                                    'height': 'toggle'
                                },
                                'animateClose': {
                                    'height': 'toggle'
                                },
                                'speed': (typeof (obj.notyspeed) != 'undefined') ? 250 : obj.notyspeed,
                                'timeout': (typeof (obj.notytimeout) != 'undefined') ? 2000 : obj.notytimeout,
                                'closeButton': true,
                                'closeOnSelfClick': true,
                                'closeOnSelfOver': false,
                                'modal': false,
                                'buttons': false,
                                'onClose': function ()
                                {}
                            });
                        }
                        if (typeof (obj.lienxhr) != 'undefined' && typeof (obj.lienxhrdiv) != 'undefined') lienXHR(obj.lienxhr, obj.lienxhrdiv);
                        if (typeof (obj.closebox) != 'undefined')(parent.window['jQueryACB'] || parent.window['jQuery']).colorbox.close();
                        if (typeof (obj.reload) != 'undefined') document.location.reload(true);
                        if (typeof (obj.deldiv) != 'undefined') document.getElementById(obj.deldiv).innerHTML = '';
                    });
                },
                error: function (XMLHttpRequest, textStatus, errorThrows)
                { // erreur durant la requete
                },
                dataType: data_type
            });
            //--------------
            return false;
        })
    j'ai créé ce bouton universel pour faciliter la gestions des liens sur les sites, tout les boutons l'utilisent avec le temps je l'améliore pour le rendre vraiment universel (il peut gérer les retour json ect ...).

    Aujourd'hui sur les sites d'annonces, on dit aux utilisateurs de mettre à jour leurs NAV, mais je commence un projet où les utilisateurs payeront donc on se doit de le rendre compatible avec le plus de monde.

    voici le site ou il est employé : http://annonces.nc/

    J'utilise le même principe pour valider les formulaires.
    http://calou3.wamland.com/LIB/JS/bouton_jquery.js

    La version de JQ est : jQuery v1.8.3

    N''hésitez pas à critiquer le bouton, je ne suis pas un expert en JS

    Edit : on est en pleine attaque Ddos, je site est fermé pour le reste du monde (c'est l'avantage d'être sur une ile )

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonjour,

    Cf le premier commentaire de la page de doc de live : http://api.jquery.com/live/

    Note for IE
    If you try to assign a live event handler on an element that doesn't exist, then any other live event handlers will not work, you will receive no errors, either.
    Ca semble compliqué donc
    En même temps IE6

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut
    oui en effet, bon pour contourner le problème je détecte si le NAV est ie < 7 et dans ce cas j'inclus la déclaration du bouton... pas tiptop mais cela fonctionne.

Discussions similaires

  1. [Freeware] Mettez un "Live Update" dans vos applications
    Par Hexanium dans le forum Mon programme
    Réponses: 10
    Dernier message: 18/07/2010, 03h34
  2. Enregistrement en live de l'ecran en live ?
    Par bster dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 02/06/2005, 09h31
  3. [plugins] Equivalent des Live Templates dans Intellij
    Par rozwel dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/02/2005, 06h37
  4. Problème avec une carte Sound Blaster Live
    Par zogstrip dans le forum Matériel
    Réponses: 4
    Dernier message: 25/09/2004, 20h43
  5. Réponses: 5
    Dernier message: 24/04/2003, 22h08

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