Question

Je l'ai récemment mis à jour une application de jQuery 1.2 à 1.3.2 -. Et nous avons trouvé une régression assez étrange

Pour certains html à peu près comme celui-ci (un peu simplifié)

<div id="steps">
  <div class="step">
    <span>step #1</span>
    <div class="removeStep"> X </div>
  </div>
  <div class="step">
    <span>step #2</span>
    <div class="removeStep"> X </div>
  </div>
</div>

Nous avons attaché précédemment un événement comme si, pour toutes les étapes:

$("#steps").find(".removeStep").click(removeStepFunc)

Dans le cadre 1.2 trouverait toutes les étapes, même nous avons ajouté dynamiquement. Sous 1.3 ne trouve jamais la première étape.

Cela ne fonctionne pas non plus:

#("#steps .removeStep").click(removeStepFunc)

Cependant, cela ne:

#("#steps).children().find(".removeStep").click(removeStepFunc)

Je ne peux évidemment contourner le problème, mais il ne me fait un peu nerveux que peut-être il y a d'autres régressions similaires affectant l'application maintenant, nous avons mis à jour, qui ne se présenteront dans certains cas, lorsque nous avons plus d'un élément correspondance.

Aussi je vois cette autre question, que je soupçonne peut-être le même problème?

sélecteur jQuery bug? sélecteur composé par rapport sélecteur simple et trouver ()

Était-ce utile?

La solution 2

ont maintenant résolu ce problème après avoir trébuché sur ce poste:

http://groups.google.com/group/jquery -FR / browse_thread / fil / ae61896a809f6cf0

Les problèmes ont été éprouviez ont été causés par notre utilisation d'une ancienne version du plugin Validator jQuery (v1.3) qui était incompatible avec jQuery 1.3.2. Le problème a été résolu, maintenant que nous avons mis à jour à v1.6.

Autres conseils

Effectuez les opérations suivantes:

jQuery('#steps > .removeStep').click(removeStepFunc)

ou

jQuery('#steps .step .removeStep').click(removeStepFunc)
       étape 1      X           étape 2      X   

UPDATE

Qu'en est-il quelque chose comme ça? (Non testé):

jQuery('#steps .removeStep').click( function() {
  jQuery(this).remove(jQuery(this).parent());
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top