【发布时间】:2014-09-15 11:56:07
【问题描述】:
我正在尝试了解如何在流星中正确执行 jQuery 代码。我有一些非常简单的例子都失败了。这是我的看法:
<template name="fixedSidebar">
<div data-spy="affix" class="bs-docs-sidebar col-md-2 sidebar">
<ul class="nav bs-docs-sidenav navbar-li menuList">
<li>
<a href="#alerts" id="testID">Alerts</a>
</li>
<li>
<a href="#contacts">Contacts</a>
</li>
<li>
<a href="#chats">Chats</a>
</li>
<li>
<a href="#projects">Projects</a>
</li>
</ul>
<div id="target">
Click here
</div>
</div>
</template>
这里是 JQuery:
if (Meteor.is_client) {
Template.fixedSidebar.rendered = function(){
$(".menuList").click(function(){
alert("Content has been clicked");
});
$("#testID").click(function(){
alert("Alerts has been clicked");
});
$( "#target" ).click(function() {
alert( "Handler for .click() called." );
});
};
}
这些点击事件都不会触发警报。我也要看看流星事件,但我想知道为什么我的 JQuery 没有运行。我已经确认 js 文件正在被流星加载。
【问题讨论】:
-
当你这样做时会发生什么:
$("template").ready(function(e){ ... your click functions }); -
Meteor.is_client是旧的,应该是Meteor.isClient。这能解决你的问题吗? -
你知道了,如果你想把它作为答案,我会选择它。
-
另外,您可能希望使用
this.$而不是$将您的搜索范围仅限于给定模板
标签: javascript jquery html meteor