为什么我的$(“。selector”)。show(900);代码仅在浏览器控制台中启动,而从不在助手中启动?

时间:2018-08-22 12:29:59

标签: javascript html meteor show-hide

我的 Template.home.helpers 中的$(".submitNumberForm").show(900);代码无法启动。但是,当代码在浏览器控制台中运行时,它可以完美运行。

$(".submitNumberForm").show(900);无法在 Template.home.helpers 中运行的事实意味着由类名{{1}表示的 HTML表单 }永远不会显示,并保持隐藏状态。

如果有人请解释我的代码出了什么问题,我将不胜感激。

在我的帮助代码下找到:.submitNumberForm,请特别注意../client/main.js

$(".submitNumberForm").show(900);

刷新Template.home.helpers({ 'displaySubmitForm': function () { var verificationCode = Meteor.user().profile.telephoneNumberVarificationCode; var verificationCodeTest = Meteor.user().profile.telephoneNumberVarified; if( typeof verificationCode === 'undefined' && typeof verificationCodeTest === 'undefined'){ console.log("displaySubmitForm verificationCode: " +verificationCode); console.log("displaySubmitForm verificationCodeTest: " +verificationCodeTest); alert("displaySubmitForm: TRUE"); $(".submitNumberForm").show(900); return true; } else { alert("displaySubmitForm: FALSE"); $(".submitNumberForm").hide(900); return false; } } }); 页后,浏览器控制台将打印出:

home

,警报功能将显示一个弹出窗口,显示:displaySubmitForm verificationCode: undefined displaySubmitForm verificationCodeTest: undefined ,但是displaySubmitForm: TRUE不会启动!

在我的$(".submitNumberForm").show(900);代码<template name="home">下找到。请注意,模板顶部/开头的../client/main.html显示单词{{displaySubmitForm}},但是 HTML表单的其余部分true不会显示在所有。这再次表明submitNumberForm代码未启动

$(".submitNumberForm").show(900);

在我的CSS文件下面找到:<template name="home"> {{displaySubmitForm}} {{#if displaySubmitForm}} <div class="form-group submitNumberForm"> <div class="col-sm-10"> <input type="number" class="form-control" id="telephoneNumber" placeholder="Enter Number" name="telephoneNumber"> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="button" id="submitNumber" class="btn btn-primary btn-block">Submit</button> </div> </div> </div> {{else}} {{/if}} </template>

.../client/main.css

请澄清一下, html表单 .submitNumberForm{ display: none; } 默认是隐藏的,并且仅根据submitNumberForm中指定的条件显示$(".submitNumberForm").show(900); < / p>

同样,当我从帮助程序中复制代码,粘贴并在控制台中运行时,会出现 HTML表单 Template.home.helpers。谁能向我解释为什么submitNumberForm不能在助手中启动呢?

1 个答案:

答案 0 :(得分:1)

使用{{#if displaySubmitForm}}表示:{{#if}}返回true时,在{{/if}}displaySubmitForm helper标签之间生成html代码。

执行帮助程序时,if中的html元素不存在。 因此,您的选择器:代码中的$(".submitNumberForm")不会选择任何内容,因为submitNumberForm元素尚不存在

在那之后,它可以在控制台上运行,因为帮助程序已经执行,并且现在生成了html。