我使用下划线来创建一些元素并将它们附加到带有 jQuery 的 div 中。
在页面底部,我使用 jQuery.on()
来响应对元素的点击。
$('.pickup').on('click',
function(e) {
alert("hello");
}
);
通过一些用户交互(在谷歌地图中),我必须向 div 添加更多元素并希望它们也响应点击。出于某种原因,他们没有。我已经在 jsfiddle 上削减了所有内容:
http://jsfiddle.net/thunderrabbit/3GvPX/
当页面加载时,请注意单击输出中的行将alert('hello')
通过 jQuery。
但是点击【添加】按钮,新行不响应点击。
我的 HTML
<div id="unit_2225" class="pickup">
<span>Click me; I was here first</span>
</div>
<script type="text/template" id="unit-template">
<div class="unit-item">
<span class="pickup">
<span>click us (<%= unit_id %>) via underscore</span>
</span>
</div>
</script>
<div id="divID">
</div>
<button>add</button>
我的 Javascript
var addUnitToDiv = function(key,val) {
console.log(val);
var template = _.template($('#unit-template').html(),val);
$('#divID').append(template);
}
var unit_ids = [{unit_id:'hello'},
{unit_id:'click'},
{unit_id:'us'},
{unit_id:'too'},
{unit_id:112}];
$.each(unit_ids, addUnitToDiv);
var unit_pids = [{unit_id:'we'},
{unit_id:'wont'},
{unit_id:'respond'},
{unit_id:'to'},
{unit_id:'clicks'},
{unit_id:358}];
createMore = function() {
$.each(unit_pids, addUnitToDiv);
}
$('.pickup').on('click','span',function() {
alert("hello");
});
$('button').click(createMore);
我发现了一个措辞相似的问题,但不知道如何在这里应用它的答案。