在 Meteor 中,如何将模板事件附加到动态插入的元素
In Meteor, how do I attach a Template Event to a dynamically inserted element?
>我有一个流星模板事件,我在单击时插入了一个<div class="mask"></div>
...
Template.dGlobalNav.events({
"click .toggle-slide-left": function() {
var mask = document.createElement("div");
mask.className = "mask";
$("body").addClass("sml-open");
document.body.appendChild(mask);
Session.set("activeNav", "sml-open");
},
。然后我想将另一个点击事件附加到此<div class="mask"></div>
......
"click .mask": function() {
$("body").removeClass(Session.get("activeNav"));
Session.set("activeNav", "");
$(".mask").remove();
}
这一切一起给我留下了这个块:
Template.dGlobalNav.events({
"click .toggle-slide-left": function() {
var mask = document.createElement("div");
mask.className = "mask";
$("body").addClass("sml-open");
document.body.appendChild(mask);
Session.set("activeNav", "sml-open");
},
"click .mask": function() {
$("body").removeClass(Session.get("activeNav"));
Session.set("activeNav", "");
$(".mask").remove();
}
});
但是,似乎"click .mask"
函数根本没有触发。我怀疑这与第一次点击事件处理程序首先生成.mask
元素的事实有关......但是经过多次绝望的谷歌搜索,我找不到如何(甚至是否)将模板事件处理程序附加到动态插入的 HTML 元素。
确定我在这里做错了什么(或很多事情),所以任何帮助或指向正确方向的指示将不胜感激。 :)谢谢!
从代码的外观来看,添加的 mask
div 不会添加到具有 "click .mask"
事件函数的模板dGlobalNav
中。它被添加到正文标签中。因此它不会开火。我不确定您想要它的位置,但是如果您将其添加到模板内的div中,它将触发。
我已经在 HTML dGlobalNav
模板中添加了这个div。
<div id="test"></div>
然后我使用 jQuery 将掩码div 添加到这个div 中。
//document.body.appendChild(mask);
$(mask).appendTo("#test");
如果你没有删除它,你将有jQuery可用。
相关文章:
- 如何动态插入jquery代码
- 动态插入的表:JQuery未检测到最后一行
- 使用JavaScript动态插入DIV的成本有多高
- 将对象动态插入到现有对象中
- 使用enyo.js将数据动态插入表中
- 在iframe代码中动态插入子id
- 在DIV中动态插入HTML并访问新元素
- 使用JQuery动态插入/删除字段
- EmberJS:动态插入组件
- 如何使用JS在中间输入文本中动态插入字符
- 动态插入并从数组中检索键值对 - Javascript
- 如何使动态插入的 html 对象可单击
- 如何在一个页面上动态插入数组中的项
- 在动态插入的表行中使用引导开关
- 动态插入Div会破坏KnockoutJS数据绑定
- 使用Ember.js将新行动态插入到Table上下文中
- 在表单未传递的情况下使用.html()动态插入隐藏文本字段
- 使用javascript创建动态插入表单
- 如何在动态插入的html文件中使用onload事件
- 使用Javascript、Jquery或Ajax动态插入Yahoo Merchant Store目录标签