我在用javascript生成的内容中选择具有jQuery选择器的元素时遇到问题。JQuery - 在生成的内容上使用选择器
因为我使用下面的函数生成:
var articles = [
{
img: { src: this.base_url + 'assets/img/frontend/placeholder.png', alt: 'Image Description' },
title : 'Title Here',
text: 'Lorem ipsum dolor sit amet, consectetur adispiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet ' +
'dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci.'
},
{
img: { src: this.base_url + 'assets/img/frontend/placeholder.png', alt: 'Image Description' },
title : 'Title Here',
text: 'Lorem ipsum dolor sit amet, consectetur adispiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet ' +
'dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci.'
},
{
img: { src: this.base_url + 'assets/img/frontend/placeholder.png', alt: 'Image Description' },
title : 'Title Here',
text: 'Lorem ipsum dolor sit amet, consectetur adispiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet ' +
'dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci.'
}
];
var template = Handlebars.compile($('#picture-above-text').html());
$('div.editor-wrapper').append(template(articles));
这将插入在页面下面的HTML:
<div class="row insumo-editor-module" style="display: none;">
{{#each this}}
<article class="span4" article-tile>
<figure>
<div class="figure-holder">
<img src="{{img.src}}" alt="{{img.alt}}">
<span class="figure-indicator"></span>
</div>
<figcaption>
<div class="editable"><h4>{{title}} <i class="icon-edit"></i></h4></div>
<div class="editable"><p>{{text}} <i class="icon-edit"></i></p></div>
</figcaption>
</figure>
</article>
{{/each}}
</div>
到目前为止不存在任何问题。但是,当我使用
$('i.icon-edit').on('click', function() {
alert('editing');
});
什么都没有发生。有谁知道为什么会发生这种情况?我想这是因为当DOM第一次生成时,图标不在页面上。有没有办法解决?
在此先感谢
可能重复(http://stackoverflow.com/questions/15090942/jquery-on-not-working-on-dynamic-content) –
尝试在这行之后附加'click':'$('div.editor-wrapper').append(template(articles));' – Cherniv
[如何为jQuery listview中的特定链接创建点击事件] ://stackoverflow.com/questions/17301307/how-to-create-click-event-for-specific-link-in-a-jquery-listview) – Omar