Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么此事件会将我送回应用程序的起点?_Javascript_Html_Css_Meteor_Meteor Helper - Fatal编程技术网

Javascript 为什么此事件会将我送回应用程序的起点?

Javascript 为什么此事件会将我送回应用程序的起点?,javascript,html,css,meteor,meteor-helper,Javascript,Html,Css,Meteor,Meteor Helper,我正在创建一个Meteor应用程序,它提供了一种类似于向导的体验,每次按下“下一步”按钮都可以从一个模板移动到下一个模板。在很大程度上,它是按设计工作的 然而,在一个页面上,我隐藏了一个HtmlTable的几列,直到用户选择AddotherDate按钮,试图通过选择该按钮来添加或取消隐藏一列,将我送回第一个模板的第1页。这是导致页面/模板消失并将应用程序返回到第一个模板的事件: Template.postTravelWizard.events({ 'click #addDate': fu

我正在创建一个Meteor应用程序,它提供了一种类似于向导的体验,每次按下“下一步”按钮都可以从一个模板移动到下一个模板。在很大程度上,它是按设计工作的

然而,在一个页面上,我隐藏了一个HtmlTable的几列,直到用户选择AddotherDate按钮,试图通过选择该按钮来添加或取消隐藏一列,将我送回第一个模板的第1页。这是导致页面/模板消失并将应用程序返回到第一个模板的事件:

Template.postTravelWizard.events({
    'click #addDate': function(event){
       var nextD8 = Session.get('nextDate');
       nextD8 = ++nextD8;
       Session.set('nextDate', nextD8);

       if (nextD8 == 2) {
         $("#date2").removeClass("hide");
         $("#airfare2").removeClass("hide");
         $("#pcm2").removeClass("hide");
         $("#reimbursemlg2").removeClass("hide");
         $("#rcei2").removeClass("hide");
         $("#ot2").removeClass("hide");
         $("#parktolls2").removeClass("hide");
         $("#confreg2").removeClass("hide");
         $("#lodging2").removeClass("hide");
         $("#mealsandI2").removeClass("hide");
         $("#foreignanddomestic2").removeClass("hide");
         $("#miscandenter2").removeClass("hide");
         $("#totals2").removeClass("hide");
       }
    }
}); // Template.postTravelWizard.events
为什么会这样

为了充分披露,以下是相关的HTML和JavaScript以及相关的CSS:

HTML:

使现代化 当nextD8==2时,单步执行我的代码,它似乎删除了应该删除的隐藏类,但在单步执行我的代码后,它转到这里:

return Template._withTemplateInstanceFunc(tmplInstanceFunc, function ()        
{
  return v.apply(data, args);
});
…然后在这里:

Template._currentTemplateInstanceFunc = oldTmplInstanceFunc;
不是我的代码,而是template.js

使现代化 出于某种原因,如果我将submit类型的输入更改为按钮,则当我在最后一个模板上选择Add Another Date good


但是,它仍然不会使列可见。我是否需要调用invalidate或类似的函数来刷新页面?

是否需要“单击添加日期”函数中的event.preventDefault来执行此操作?不确定是什么原因导致此操作。如果您在控制台中尝试Session.getstepNum,这是您所期望的吗?不是“nextDate”,而是“stepNum”?如果这一点发生了变化,您的模板就会改变。也许一个e.stopPropagation,取决于按钮的放置方式,可以解决这个问题。但我只是在猜测,还没有;诺切尼希特;我还没有测试StopperPogation,如果按钮也因为某种原因被触发,我将在那里放置一个断点,首先检查它;最后,我建议在事件处理程序的末尾返回false。除此之外,我被难住了。
.hide {
  visibility: hidden;
  display: none;
}
return Template._withTemplateInstanceFunc(tmplInstanceFunc, function ()        
{
  return v.apply(data, args);
});
Template._currentTemplateInstanceFunc = oldTmplInstanceFunc;