Jquery-click-Ereignis nicht auslösen, die auf das element erstellt, die dynamisch mit jquery

Ich versuche, eine einfache Funktionalität, wo der Benutzer wählt einen Wert aus dem Dropdown-Menü und klickt dann auf die Schaltfläche hinzufügen, um das ausgewählte Element die in der nachstehenden div in der form tag.

Jeder Hinzugefügt tag einen entfernen Anker, die beim anklicken entfernt die tag.

Nun durch anklicken der Schaltfläche hinzufügen die tags sind korrekt eingesetzt
Aber wenn ich klickte auf die Schaltfläche entfernen, über tag wird das click-Ereignis nicht auslösen.

Aber wenn ich hart codiert einige tags mit der exakt gleichen markup wie die dynamisch generierten tags, die das click-Ereignis für die entfernen-tag wird brennen genau richtig und das tag entfernt wird, wie ich es wollte.

HTML:

    <select id="ddlTagName">
    <option value="1">Tag One</option>
    <option value="2">Tag Two</option>
    <option value="3">Tag Three</option>
</select>
<input id="btnInsertTag" type="button" value="Add"/>
<br/>

<div id="TagsHolder">
  <span class="tag">
      <span>Tag One HardCoded </span>
      <a class="remove">X</a>
  </span>

  <span class="tag">
      <span>Tag Two HardCoded </span>
      <a class="remove">X</a>
  </span>
</div>

JS:

    $("#btnInsertTag").click(function () {
    var selectedTagText = $("#ddlTagName option:selected").text();
    var selectedTagValue = $('#ddlTagName').val();
    var generateMarkup = '<span class="tag" data-value="' + selectedTagValue + '"><span>' + selectedTagText + ' </span><a class="remove">X</a></span>';
    $("#TagsHolder").append(generateMarkup);
});

$(".remove").click(function () {
    alert('click event triggered');
    $(this).parent(".tag").remove();
});

Meine Frage ist, warum die click-Ereignis nicht feuern für die dynamisch generiert tags.

Hier ist die Demo

Vielen Dank im Voraus

Goggled Ihre Frage Titel und bekam dies als erstes Ergebnis : stackoverflow.com/questions/20819501/...

InformationsquelleAutor Saurabh Palatkar | 2014-03-24

Schreibe einen Kommentar