Les événements à ne pas l'enregistrement après remplaceavec

Quand je replaceWith un élément à apporter, l'une des DOM, puis replaceWith il en, événements enregistrés pour elle de ne pas le feu. J'ai besoin des événements de rester intact.

Voici mon code Javascript:

var replacement = $(document.createElement('span'));
var original = $(this).replaceWith(replacement);

replacement
    .css('background-color', 'green')
    .text('replacement for ' + $(this).text())
    .click(function() {
        replacement.replaceWith(original);
    });

démo

Dans la démo, lorsque vous cliquez sur un élément, il est remplacé par un autre élément à l'aide de replaceWith. Lorsque vous cliquez sur l'élément nouveau, qui est remplacé par l'élément d'origine à l'aide de replaceWith. Toutefois, le gestionnaire de clic ne fonctionne plus (d'où je pense qu'elle devrait).

  • Vous êtes-vous retrouvée à l'aide de l'événement de rattachement, ou avez-vous été en mesure d'obtenir en Direct les événements de travailler? Je suis en train de faire exactement la même chose, et aimerait apprendre de votre expérience.
  • T, je suis désolé, mais honnêtement, je ne me souviens. J'ai posé cette question il y a deux ans. Je pense que l'utilisation $.fn.live n'a pas fonctionné parce que j'ai été traiter avec des éléments réels, et non pas d'un sélecteur. ($.fn.delegate (qui n'existait pas à l'époque) peut travailler pour vous comme un live alternative.) En raison de la réponse que j'ai choisie, je suppose que j'ai fini de re-joindre le gestionnaire d'événements. Vous pouvez essayer de profondeur le clonage de l'élément (ce qui IIRC peut garder des gestionnaires d'événements dans la dernière jQuery).
InformationsquelleAutor strager | 2009-04-20