我想定义一些变量,稍后在我的应用程序布局呈现后立即用于确定我的 jQuery 选择器的范围。
我试着定义它们:
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 = $("body");
L.PC = $("#page_content", L.BODY);
声明本身工作正常,但 L.BODY
显示当我尝试声明这些变量时我的应用程序主体仍然是空的。
一旦我的应用程序布局呈现,我如何定义 jQuery 对象?
最佳答案
layout
只是另一个模板。 jQuery 需要 DOM 元素存在才能从中创建对象。
从那里开始 onRendered
callback是要走的路:
Template.layout.onRendered(function() {
L.BODY = $('body');
L.PC = $('#page_content', L.BODY);
});
关于javascript - 布局呈现后如何初始化 jQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550273/