我有一个生成图像的模板,我将它绑定到div。
<script id="postTemplate" type="text/html">
<div class="post_1">
<div class="postImage"><img src="${ImageUrl}" alt="Image"></div>
</div>
</script>
然后我绑定数据
<script>
$("#postTemplate").tmpl(clientData).appendTo("#imagesArea");
</script>
现在,我想要的是为我刚刚创建的事件添加一个事件处理程序。
之类的东西("template img").error(function() {});
向click之类的东西添加处理程序似乎有效,但在我可以添加处理程序之前就会触发错误。
答案 0 :(得分:5)
不确定你的选择器“模板img”是什么引用,因为我没有看到任何模板元素。
$(function(){
$('template img').live({
click: function() {
// do something on click
},
error: function() {
// do something on error
}
});
});
答案 1 :(得分:3)
$("template").on("error", "img", function(){});
答案 2 :(得分:1)
怎么样
$("#postTemplate img").click(function() { alert('clicked'); });
添加模板后必须调用。否则,您必须使用直播
答案 3 :(得分:0)
我不确定我是否得到了您的问题,但我猜您可以在将其附加到#imagesArea
元素之前存储对模板中生成的对象的引用,将事件附加到该引用应该如下:
var myGeneratedContent = $("#postTemplate").tmpl(clientData)
myGeneratedContent.appendTo('#imagesArea');
myGeneratedContent.click(function() { [...] });
答案 4 :(得分:0)
试
("template img").bind("error",function() {});
答案 5 :(得分:0)
您可以使用.live(),即使之后创建了元素,也会绑定事件
$("#imagesArea img").live('click', function(){
//do stuff here
});