在Meteor中调用事件处理程序

时间:2014-07-30 05:24:10

标签: meteor

我有这个模板:

<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中的原始文档后重新应用警报?

1 个答案:

答案 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给出的相同区域。