Javascript 布局呈现后如何初始化jQuery对象?
我想定义几个变量,稍后在我的应用程序布局呈现之后,我将使用这些变量来确定jQuery选择器的范围 我试图用以下方式来定义它们:Javascript 布局呈现后如何初始化jQuery对象?,javascript,jquery,meteor,Javascript,Jquery,Meteor,我想定义几个变量,稍后在我的应用程序布局呈现之后,我将使用这些变量来确定jQuery选择器的范围 我试图用以下方式来定义它们: Meteor.startup(function () { /* Define variables */ }) 但它不起作用,物体是空的 以下是我如何声明我的应用程序布局: Router.configure({ layoutTemplate: 'layout' }); 以下是布局本身: <template name="layout"> <di
Meteor.startup(function () { /* Define variables */ })
但它不起作用,物体是空的
以下是我如何声明我的应用程序布局:
Router.configure({
layoutTemplate: 'layout'
});
以下是布局本身:
<template name="layout">
<div id="page_container">
<header id="page_header">
</header>
<div id="page_content">
{{> yield}}
</div>
</div>
</template>
声明本身工作正常,但L.BODY
显示在我尝试声明这些变量时,应用程序的主体仍然是空的
一旦呈现了应用程序的布局,我如何定义jQuery对象?
layout
只是另一个模板。jQuery需要DOM元素存在才能从中创建对象
接下来的路是:
Template.layout.onRendered(function() {
L.BODY = $('body');
L.PC = $('#page_content', L.BODY);
});
我没有意识到
layout
当时被当作另一个模板处理。非常感谢你的帮助!如果您需要在执行任何JQuery之前保证DOM元素存在,那么这个问题和我的答案可能会很有趣@Kassymorsel是的,这很接近,但主题不同(每个迭代都是),在这里不太适用。
Template.layout.onRendered(function() {
L.BODY = $('body');
L.PC = $('#page_content', L.BODY);
});