javascript - Jquery click event not firing on the element created dynamically using jquery -
i trying make simple functionality user selects value drop down , clicks on add button add selected item in below div in form of tag.
each added tag has remove anchor when clicked removes tag.
now when clicked on add button tags being inserted correctly, when clicked on remove button on tag, click event not firing.
however if hard coded tags exact same markup of dynamically generated tags, click event remove tag firing exact , tag being removed wanted.
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 1 hardcoded </span> <a class="remove">x</a> </span> <span class="tag"> <span>tag 2 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(); });
my question why click event not firing dynamically generated tags.
here demo
thanks in advance
use delegation instead
event delegation allows attach single event listener, parent element, fire children matching selector, whether children exist or added in future.
$(document).on('click', '.remove', function () {.....
Comments
Post a Comment