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

JavaScript Discussion :

Operation == qui ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut Operation == qui ne fonctionne pas
    Bonjour a vous

    Je veux faire une expression terciere de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update:  $(this).parent().attr('id') == "source" ? onSourcePriorityChanged : onCompetencePriorityChanged
    Le probleme est quils retournent toujours la condition numero 2, soit OnCompetencePriorityChanged

    Pourtant, la valeur de $(this).parent().attr('id') est bien egal a source.

    Est-ce que ma comparaison est correct

    Merci

  2. #2
    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 : 54
    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
    Oui, ton expression est correcte, mais le problème vient certainement de la construction de ta page (j'imagine avec un langage serveur comme PHP) qui ajoute surement des caractères non imprimables dans l'id, du coup, sa vraie valeur n'est plus celle affichée...
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).parent().attr('id').trim() == "source"
    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

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Par défaut
    On peut voir le code qu'il y a AVANT et APRES cette ligne, car là on pourrait extrapoler un paquet de choses.

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Oui en effet, desole... cest une methode pour sort un tableau

    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
               <%-- // Permet de changer l'ordre d'affichage des artefacts --%>
                $(".sortable tbody").sortable({
     
                    <%-- // Ce helper permet de conserver la taille des <td> lors du drag and drop. --%>
                    <%-- // Source : http://stackoverflow.com/questions/1569889/jquery-move-table-row --%>
    			    helper: function(event, tableRow)
    			    {
    				    var $originals = tableRow.children();
    				    var $helper = tableRow.clone();
     
    				    $helper.children().each(function(index)
    				    {
    				        // Set helper cell sizes to match the original sizes
    				        $(this).width($originals.eq(index).width())
    				    });
    				    return $helper;
    			    },
     
    			    update:  $(this).parent().attr('id') == "source" ? onSourcePriorityChanged : onCompetencePriorityChanged
     
    		    }).disableSelection(); 
            });
    Fait 3 heures que je travaille la-dessus sans succes. Je suis pas un expert javascript. Cest du jquery

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Par défaut
    regarde bien ton écriture, ici ton $(this).parent() n'est pas dans une fonction, donc ton $(this) correspond à autre chose que ton tableau. enfin c'est ma théorie.
    Mets nous le code qu'il y a un niveau au dessus s'il te plait

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Le reste du javascript, ce sont des fonction click du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        $('.btnIconInvisible.competence').click(function() {
                    var clef = $(this).attr('id');
                    clef = clef.substr(4);   
                    $("#txtNoCompExpertiseVis").attr("value", clef);                   
                    $('#diagVisibleCompetence').dialog('open');                                             
                });

  7. #7
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par arnogues Voir le message
    regarde bien ton écriture, ici ton $(this).parent() n'est pas dans une fonction, donc ton $(this) correspond à autre chose que ton tableau. enfin c'est ma théorie.
    Mets nous le code qu'il y a un niveau au dessus s'il te plait
    +1


    il y a de fortes chances que la cause de tout proviennent du this qui est celui défini avant même la première ligne de code. (probablement "window")

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Ce que j'ai fais temporairement et ca fonctionne tres bien, cest ceci :

    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
     
                <%-- // Permet de changer l'ordre d'affichage des artefacts --%>
                $(".sortable tbody").sortable({
     
                    <%-- // Ce helper permet de conserver la taille des <td> lors du drag and drop. --%>
                    <%-- // Source : http://stackoverflow.com/questions/1569889/jquery-move-table-row --%>
     
    			    helper: function(event, tableRow)
    			    {
    				    var $originals = tableRow.children();
    				    var $helper = tableRow.clone();
     
    				    $helper.children().each(function(index)
    				    {
    				        // Set helper cell sizes to match the original sizes
    				        $(this).width($originals.eq(index).width())
    				    });
    				    return $helper;
    			    },
     
    			    update: onSourcePriorityChanged 
     
    		    }).disableSelection(); 
            });
     
     
            function onSourcePriorityChanged(event, ui) {
                var test = $(this).parent().attr('id').trim();
     
                if(test == "source")
                {
                var url = "/Diplome/Expertise/ModifierPrioriteAffichageSources";
                var tableBody = $(ui.item).parent();
                var tableRows = tableBody.children();
                var noSources = new Array();
     
                <%-- // Affiche l'avertissement de sauvegarde en cours --%>
                var notification = tableBody.parent().next("div[id|=sauvegarde]");
                notification.css("display", "block");
     
                tableRows.each(function(index, row) {
                    var noSource = $(row).attr("id").substr("ligne-source-".length);
                    noSources.push(noSource);
                });
     
                $.ajax({
                    type: "POST",
                    url: url,
                    data: { noSources: noSources },
                    success: onSourcePriorityChanged_Success,
                    dataType: "json",
                    traditional: true
                });
                }
                else
                {
                var url = "/Diplome/Expertise/ModifierPrioriteAffichageCompetences";
                var tableBody = $(ui.item).parent();
                var tableRows = tableBody.children();
                var noCompetences= new Array();
     
                <%-- // Affiche l'avertissement de sauvegarde en cours --%>
                var notification = tableBody.parent().next("div[id|=sauvegarde]");
                notification.css("display", "block");
     
                tableRows.each(function(index, row) {
                    var noCompetence = $(row).attr("id").substr("ligne-competence-".length);
                    noCompetences.push(noCompetence);
                });
     
                $.ajax({
                    type: "POST",
                    url: url,
                    data: { noCompetences: noCompetences },
                    success: onCompetencePriorityChanged_Success,
                    dataType: "json",
                    traditional: true
                });
                }
            }
    Sauf que ce nest pas tres bien optimiser . Si vous avez des idees, je suis preneur !

    Merci

  9. #9
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update: function(){
      ($(this).parent().attr('id') == "source" ? onSourcePriorityChanged : onCompetencePriorityChanged).apply(this,arguments);
    }

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Merci Willpower !

    Ca fonctionne tres bien. Je vais utiliser ceci !!!

  11. #11
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    merci de poster les questions sur jquery dans le forum JQUERY
    ça aide tout le monde

    A+JYT

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

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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