|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 16 ![]() |
Bonjour,
mon problème est assez simple, mais je ne trouve pas de solution malgré mes nombreuses recherches sur le web. En fait lorsque je crée un élément avec .append .html .text etc. Les éléments créé ne sont pas accessibles depuis mes sélecteurs. Ce qui est assez logique étant donné qu'ils sont créé après le chargement de la page et donc de mes sélecteurs. Connaissez-vous une astuce me permettant de palier à ce problème? Merci =) Voilà des jours que je cherche sans succès |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Tu pourrais donner un exemple ?
Parce que Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#3 | ||||||
|
Invité régulier
![]() Inscription : avril 2008 Messages : 16 ![]() |
Oui bien sur, voilà un exemple
On crée l'élément quand on clique sur création_element Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Là c'est pas le append qui pose problème mais la logique globale...
Si tu affectes le clic sur un élément qui n'existe pas, ben c'est sûr que ça marche moins bien ![]() Il y a plusieurs solutions pour parer à cela. * Définir le clic après l'insertion Code :
Code :
$('.test').live('click', function(){...}; Code :
$('#conteneur').delegate('.test', 'click', function(){...});
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
10
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 16 ![]() |
super, je ne connaissais pas ces methode.
Un grand merci |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() ![]() Webmaster Inscription : septembre 2007 Messages : 376 ![]() |
Bovino j'ai une tite question : pourquoi delegate est plus recommandée que .live ?
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Il y a des raisons assez compliquées dues au fonctionnement interne de cette méthode, mais sinon, elle attache l'événement à la racine du document, puis vérifie si la balise qui a reçu l'événement correspond à celui indiqué. Or si l'événement est stoppé (return false, stopPropagation(), ...) avant, il ne sera jamais reçu. Delegate() attache l'événement à la balise qui a appelé la méthode, c'est préférable.
Mais ce n'est qu'un seul des aspects (par exemple, tu ne peux pas utiliser live() à partir d'une méthode de parcours du DOM).
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#8 | |
|
Membre éclairé
![]() ![]() Webmaster Inscription : septembre 2007 Messages : 376 ![]() |
Citation:
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com