Alternative à jquery live qui peut fonctionner

J'ai ce code simple. http://jsfiddle.net/borth/BmEZv/
Si vous cliquez sur le lien une fois, il fonctionne très bien. Si vous cliquez une deuxième fois, ça ne fonctionne pas. En raison de l'html en cours de chargement dans le html après le DOM est chargé, j'ai essayé .sur, .lier, .délégué, et .vivre. Aucun d'entre eux fonctionnent à l'exception .live qui est obsolète (je suis en utilisant jquery 1.7.2).

Quelqu'un peut m'expliquer pourquoi .vivre, c'est la seule fonction qui fonctionne et pourquoi les autres ne fonctionnent pas (ou si je fais quelque chose de mal avec les autres fonctions).


$(document).ready(function(){
  $(".OpenPopup").bind('click', function(e){
      alert('test .OpenPopup');
      //do something
      return false;
  });
  $(".EditIcon").bind('click', function(){
      alert('test .EditIcon');
      //do something
      $("#ABC").html('<div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here again</div>');
  });
});


<div id="ABC"><div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here</div></div>
.On est la langue officielle de remplacement pour .Live
lire le jQuery docs FAQ pour répondre à why
Je l'ai eu à travailler avec .sur(). J'ai eu la mauvaise syntaxe.

OriginalL'auteur Brandon Orth | 2013-01-07