J'ai une table où une colonne inclut un lien hypertexte. Le chargement de la page, il y a un certain nombre de lignes déjà peuplées, et je suis dénombraient sur le tableau et accroché l'événement cliquez sur chaque lien:Ajouter dynamiquement des hyperliens vers DOM avec des événements pré-câblés?
$$("a[id^=remove]").each(function (item) {
item.observe("click", removeDevice);
});
Cette partie fonctionne; un clic sur le lien hypertexte exécute la méthode removeDevice
, qui inclut un appel Event.stop
pour empêcher le lien hypertexte de naviguer.
Ensuite, j'ajoute de nouvelles lignes à cette table et j'ai besoin de nouveaux hyperliens qui fonctionnent de la même manière. Je crée en utilisant ces prototypes, comme dynamiquement ceci:
var remove = new Element("a", { id: "remove-{SerialNumber}".interpolate(device), href: "/Home/Javascript" })
.update("Remove")
.observe("click", removeDevice);
Cependant, je suis maintenant coincé avec la façon d'obtenir cet élément dans ma table et ont encore les événements câblés. Je peux obtenir le lien hypertexte pour apparaître en faisant ceci:
newRow.insert({ bottom: new Element("td").update(remove.outerHTML) });
mais, comme vous pouvez l'imaginer, les événements ne fonctionnent plus ici. Y a-t-il un moyen d'ajouter l'élément directement, en conservant les événements que j'ai branchés?