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 :

UI Tabs, Changer un label ?


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut UI Tabs, Changer un label ?
    Bonjour à tous,

    Je cherche à changer un label dans un tabs ?

    Rien dans la doc jquery...

    quelqu'un sait-il comment faire ?

    Bonne journée à tous

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut Porrais tu
    préciser ta demande. Car tu n'indiques pas à quel moment tu désires changer de label. Mais sinon ce n'est pas trop compliqué. Par exemple le cas ou on sélectionne un des onglets (tabs).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script type="text/javascript">
    	$(function() {
    		$("#tabs").tabs({
    			select: function(event, ui) { 
    				$(ui.tab).text('Salut jquery ui');
    			}
     
    			});
    	});
    	</script>
    Ce qui et intéressant , entre autre , avec jquery ui c'est que l'on peut facilement récupérer les évènements pour pouvoir faire des traitements.

    Si le cœur t'en dis , essaye ce code avec firefox et firebug.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type="text/javascript">
    	$(function() {
    		$("#tabs").tabs({
    			select: function(event, ui) { 
                                    console.debug(ui);
    				$(ui.tab).text('Salut jquery ui');
    			}
     
    			});
    	});
    	</script>
    Avec console debug tu récupères un objet qui contient en tas d'informations précieuses.

    Si tu veux plus de précisions sur ce que tu fais , laisse une description précise de ce tu désires réaliser.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour sourisseau,

    Merci de ta réponse.

    Quelques précisions :

    L'évènement déclencheur est produit par un click sur un bouton hors du tabs.

    Lorsque l'on clique sur ce bouton, l'onglet 5 de mon tabs qui se nommait "calendrier" doit se nommer "inserer".

    Son url change alors aussi avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tabs.tabs("url",5,url);
    Mais ce que je cherche c'est comment changer à la volée le label de l'index 5.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut Merci
    pour la précision . Voici une fonction simple pour gérer ton titre d'onglet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script type="text/javascript">
    	$(function() {
    		$("#tabs").tabs();
    	});
     
    	function change_label(x){
    		$("a[href='#tabs-" + x + "']").text('inserer')
    	}
    	</script>
    et dans ton html ton boutton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value='test' onclick='change_label(5)'>

    Dis moi si cette solution te convient.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    J'ai essayé de l'integrer à ma fonction de façon basique mais cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    creActi=function(){
    var IDClient=$("#IDClient").val();
    url="actis/Ajax/acti.php?IDClient="+IDClient+'&psswd='+psswd+'&login='+login;
    $tabs.tabs('option', 'disabled', [0,1,2,3,4]);
     
    $tabs.tabs("url",5,url); 
    $tabs.tabs("enable",5);
    $tabs.tabs("option", "selected",5);
     
    $("a[href='#tabs-5']").text('inserer');
     
    };
    D'un autre coté je ne sais pas si le href correspond bien puisqu'il correspond à l'url changée plus haut ???

    PS : je vais être absent jusqu'à 13h00 je me reconnecte au retour

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut ok je vois mieux
    Ce que tu est en train de faire ...
    dans ta fonction remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tabs.tabs('option', 'disabled', [0,1,2,3,4]);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $("#tabs").tabs({
    			disabled: [0, 1 , 2 , 3 , 4 ],
    			enable: function(event, ui) { 
    				if (ui.index==4) $(ui.tab).text('Inserer');
    			}
     
    		});
    Voili j'espère que cela va marcher ...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    c'est pas tout à fait ça en fait.

    Parce que ce n'est pas systématiquement que le label change lorsqu'il est enable, c'est juste quand on clique sur ce bouton.

    le click sur un autre bouton rend le tab index 5 "enable" aussi mais sans changement de label...

    Mon tabs lui est initialisé dans la page qui le charge comme 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
    $(document).ready(function() {
    $tabs=$("#example").tabs({
    disabled:[2,3,4,5], 
    collapsible:true,
    load:function(event, ui){
    if((ui.index!=2)&&($("#divExistClient").length!=0)) $("#divExistClient").remove();
    if((ui.index==0)||(ui.index==1)){ 
    $tabs.tabs('disable',2);
    $tabs.tabs('disable',3);
    $tabs.tabs('disable',4);
    };
    },
     
    }); 
    });
    c'est donc une fonction liée à un bouton qui doit déclencher (uniquement dans ce cas) le changement de label

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut une variable de test
    serait bien utile , cela donnerai le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var text_inserer = false;
    $("#tabs").tabs({
    			disabled: [0, 1 , 2 , 3 , 4 ],
    			enable: function(event, ui) { 
    				if (ui.index==4 &&  text_inserer) $(ui.tab).text('Inserer');
    			}
     
    		});
    et dans ton boutton , sur le onclick tu passe cette valeur a true ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value='test' onclick='text_inserer = true;ma_fonction()'>

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    alors voila ou j'en suis :

    ceci sur le bouton fonctionne :

    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
    creActi=function(){
    var IDClient=$("#IDClient").val();
    url="actis/Ajax/acti.php?IDClient="+IDClient+'&psswd='+psswd+'&login='+login;
    $tabs.tabs('option', 'disabled', [0,1,2,3,4]);
     
    $("#example :children").each(function(event, ui){
    if(ui.index==5) $(ui).text('Inserer');
    });
     
    $tabs.tabs("url",5,url); 
    $tabs.tabs("enable",5);
     
    $tabs.tabs("option", "selected",5);
     
    };
    Comme j'ai toujours le cas de l'autre bouton, donc changement de nouveau du label vers le label d'origine

    J'essaye de plutot faire comme 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
    $(document).ready(function() {
    $tabs=$("#example").tabs({
    disabled:[2,3,4,5], 
    collapsible:true,
    load:function(event, ui){
    if((ui.index!=2)&&($("#divExistClient").length!=0)) $("#divExistClient").remove();
    if((ui.index==0)||(ui.index==1)){ 
    $tabs.tabs('disable',2);
    $tabs.tabs('disable',3);
    $tabs.tabs('disable',4);
    };
    },
    enable:function(event, ui){
    if(ui.index==5) $(ui).text(($(ui).text=='Calendrier') ? 'Inserer' : 'Calendrier');
    }
     
    });
    });
    Mais pour le moment cela ne fonctionne pas...

    J'ai essayé de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    enable:function(event, ui){
    alert(ui.index);
    }
    Mais curieusement le seul qui ne renvoi rien au moment ou il est enabled est index 5

    une idée ?

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Par défaut Faire simple
    pour le moment c'est un peu trop compliqué pour moi de comprendre la logique de ce que tu fais et je ne peux te proposer une solution sans que cela n'entraine un autre problème.

    Si le label doit changer en fonction de tel ou tel action , la valeur de text_insert n'est plus un boolean mais une string que tu définir à Calendrier par exemple au départ et puis en fonction du bouton sur lequel tu cliques tu changes sa valeur.

    Mais j'ai un peu peur de ne pas saisir exactement ce que tu veux faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    var text_inserer ='Calendrier';
    $("#tabs").tabs({
    			disabled: [0, 1 , 2 , 3 , 4 ],
    			enable: function(event, ui) { 
    				if (ui.index==4 &&  text_inserer) $(ui.tab).text('Inserer');
    			}
     
    		});
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <input type="button" value='test' onclick="text_inserer = 'Insérer';ma_fonction()">

    Concernant 'Mais curieusement le seul qui ne renvoi rien au moment ou il est enabled est index 5 ' c'est que la numérotation commence a 0 , par conséquent si tu as 5 onglets les index sont 0,1,2,3 et

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

Discussions similaires

  1. file_field tag - changer de label par default
    Par Javix dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 30/01/2009, 10h01
  2. Réponses: 7
    Dernier message: 26/03/2008, 10h23
  3. Comment changer le label des points du TDBChart ?
    Par mimille63 dans le forum Langage
    Réponses: 0
    Dernier message: 11/12/2007, 17h29
  4. Changer un Label et cacher un Button
    Par Xmemy dans le forum Tkinter
    Réponses: 2
    Dernier message: 07/12/2007, 17h09
  5. [W3C] [form] Changer le label d'un bouton
    Par GLDavid dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/07/2007, 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