【发布时间】:2014-05-01 20:20:22
【问题描述】:
我正在尝试做一个简单的功能,用户从下拉列表中选择一些值,然后单击添加按钮以标签的形式在下面的 div 中添加所选项目。
每个添加的标签都有一个删除锚点,单击该锚点会删除标签。
现在当点击添加按钮时,标签被正确插入, 但是当我点击标签上的删除按钮时,点击事件没有触发。
但是,如果我用与动态生成的标签完全相同的标记对一些标签进行硬编码,则删除标签的点击事件会正确触发,并且会按照我的意愿删除标签。
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();
});
我的问题是为什么 click 事件 没有为 动态生成的 标签触发。
这里是Demo
提前致谢
【问题讨论】:
-
盯着你的问题标题并得到这个作为第一个结果:stackoverflow.com/questions/20819501/…
标签: javascript jquery html