我有这个模板:
<template name='foo'>
<button id='hello'>Click me</button>
</template>
我有这个事件处理程序
Template.foo.events({
'click #hello':function(){
alert('hi');
var clone=$('#hello').clone(true,true);
$('#hello').replaceWith(clone);
}
});
现在问题是,更换渲染的原始按钮后,警报不再发出警报,如何在更换dom中的原始文档后重新应用警报?
答案 0 :(得分:1)
您需要使用Meteor插入任何DOM。使用UI.insert逻辑。
首先,您需要将元素设置为单独的模板或ui组件:
<template name="button">
<button id='hello'>Click me</button>
</template>
<template name="foo">
{{>button}}
</template>
然后您可以将其删除并手动更换
$('#hello').remove();
UI.insert(UI.render("button"), [dom area of where to insert it]);
dom区域指示您想要放置它的位置。您可以使用模板渲染回调(this.firstNode)中返回的firstNode
值来模仿上面代码中replaceWith
给出的相同区域。