如何初始化一个jQuery对象一旦布局已经呈现

How to initialize a jQuery object once the layout has rendered?

本文关键字:布局 对象 一个 初始化 jQuery      更新时间:2023-09-26

我想定义几个变量,在我的应用程序布局渲染后,我用它来确定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回调的方式:

Template.layout.onRendered(function() {
  L.BODY = $('body');
  L.PC   = $('#page_content', L.BODY);
});