javascript - 布局呈现后如何初始化 jQuery 对象?

标签 javascript jquery meteor

我想定义一些变量,稍后在我的应用程序布局呈现后立即用于确定我的 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/

相关文章:

javascript - 我无法在 Meteor 应用程序中使用聊天功能

javascript - meteor 上的 vis-timeline 不渲染

javascript - 如何在 JavaScript 中解析 excel 文件?

javascript - 使用 HTML 和 Javascript 访问嵌套对象

javascript - 如何启用和禁用 Ajax.Actionlink

javascript - 如何在 ng-bind angularjs 中使用 toFixed(2)

javascript - jQuery 满足 'if' 未执行

javascript - 如何使用 startAt 和 endAt 根据时间戳过滤 Firebase 数据

javascript - 仅当没有被任何处理程序阻止时才触发事件?

Python 请求和 Meteor/MongoDB collectionapi 更新不起作用