/ / Comment jQuery-ify éléments retournés par un appel ajax? - jquery, ajax, drupal-6

Comment jQuery-ify éléments retournés par un appel ajax? - jquery, ajax, drupal-6

Je pose cette question dans un contexte Drupal, mais la réponse peut être générique et ne pas dépendre spécifiquement de Drupal.

J'ai des éléments HTML qui obtiennentmis à jour / remplacé via jQuery / ajax. Lors du chargement de la première page, les éléments sont correctement traités par jQuery. Cependant, les liens inclus dans les données renvoyées après un appel ajax sont ignorés par jQuery.

// This standard function ensures that elements are properly processed after first page load:
Drupal.behaviors.events = function(context) {

// This works as intended. Clicking on links works as intended:
$(".event_browse_location .parent_locations a:not(.events-processed)", context).addClass("events-processed")
.bind("click", function() {
$.get(Drupal.settings.basePath + "/events/location/" + parseInt(this.id, 10), null, browseLocation);
return false;
});
}

var browseLocation = function(response) {
var result = Drupal.parseJson(response);
// New elements are properly added to the DOM here:
$(".event_browse_location").html(result.data);

// However, this does not seem to have any effect.
// The a elements in the new elements do not work as intended.
// jQuery does not process them at all.
$(".event_browse_location .parent_locations a:not(.events-processed)").addClass("events-processed")
.bind("click", function() {
$.get(Drupal.settings.basePath + "/events/location/" + parseInt(this.id, 10), null, browseLocation);
return false;
});
}

Réponses:

0 pour la réponse № 1

Dans ce cas, il y avait deux erreurs stupides.

Guest271314 a signalé la première: il y avait une variable non déclarée dans le code original que j'ai posté. J'ai modifié la question en conséquence.

Deuxièmement, mon sélecteur jQuery était faux et excluait les éléments destinés à être inclus. La fixation du sélecteur a résolu le problème.