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 :

Attacher un évènement à une collection [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut Attacher un évènement à une collection
    Bonjour à tous,
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div id="radioWrap">
    	<input type="radio" name="services" value="1" checked> Service 1
    	<input type="radio" name="services" value="2" checked> Service 2
    </div>
    <div id="selectWrap">
    	<select>
    		<option value="-1">Choisir</option>
    		<option value="1">Choix 1</option>
    		<option value="2">Choix 2</option>
    		<option value="3">Choix 3</option>
    	</select>
    </div>

    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
    $('#selectWrap > select').on('change', function(){
    	addselect($('input[type=radio][name=services]:checked').attr('value'), $(this).children('option:selected').attr('value'), $(this));
    });
     
    function addselect(service, parent, elt){
    	elt.nextAll("select").remove();
    	if ( elt.val() != '-1' ) {
    		$.ajax({
    			type: 'POST',
    			url: 'ajax.php',
    			data: 'serviceId='+service+'&parentId='+parent+'&structures=ok',
    			dataType: 'json',
    			cache: false,
    			beforeSend: function(){
    				$("<img/>",{src: "assets/img/ajax-loader.gif", id: "loader"}).insertAfter(elt);
    			},
    			complete: function(){
    				$("#loader").remove();
    			},
    			success: function(data){
    				if ( data.result.children.length > 0 ) {
    					var items = data.result.children, level = data.result.level;
    					$('<select/>',{'class':'form-control'}).insertAfter(elt);
    					$('<option/>',{value: '-1', html: 'Choisir dans "' + elt.children('option:selected').text() + '"'}).appendTo($('#selectWrap > select').eq(-1));
    					for(var i in items){
    						$("<option/>",{value: items[i].struc_id, html: items[i].struc_name}).appendTo($('#selectWrap > select').eq(-1));
    					}
    				}					
    			}
    		});
    	}
    }
    Ma question est de savoir pourquoi onchange ne s'applique pas aux autres select créés après le premier dans #selectWrap ?

    Merci d'avance

  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 661
    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 661
    Billets dans le blog
    1
    Par défaut
    Utilises ton on en délégation d'evènement, ainsi les élément crées dynamiquement après le ready bénéficieront de l'evenement bindé avec le on
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#selectWrap').on('change', 'select', 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 !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#selectWrap').on('change', '> select', function(){
    Pour mon cas.

    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/04/2013, 22h47
  2. Valeur Par défaut sur une Combobox attaché à une collection
    Par olufade dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 26/08/2009, 18h47
  3. Attacher un évènement à une méthode de la classe courante
    Par hush dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/06/2007, 01h40
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 14h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 15h49

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