javascript - 在 Meteor/Flow Router 中重新执行 Javascript 每条路由?

标签 javascript jquery meteor

我的主题中有一段代码,它将背景附加为 CSS 背景。 JS代码如下:

$('.background-image-holder').each(function() {
    var imgSrc = $(this).children('img').attr('src');
    $(this).css('background', 'url("' + imgSrc + '")');
    $(this).children('img').hide();
    $(this).css('background-position', 'initial');
});

// Fade in background images

setTimeout(function() {
    $('.background-image-holder').each(function() {
        $(this).addClass('fadeIn');
    });
}, 200);

现在的问题是,每次刷新页面时,这段代码都会起作用,但当我从一条路线单击到下一条路线时,这段代码就不那么有效了。

例如我刷新索引页面并加载封面图像,但如果我单击“关于”页面,则“关于”页面上的图像将不再加载...除非我刷新页面。我当前正在使用 .onRendered 方法执行代码:

Template.mainIndex.onRendered(function(){ ...code here });

我是否可以在每次加载时重新执行此脚本,或者是否有更好的方法来解决此问题?我在 Meteor JS 上使用 Flow Router 和 Blaze Layout。

最佳答案

FlowRouter 有触发器:https://github.com/kadirahq/flow-router#triggers

FlowRouter.triggers.enter([cb1, cb2]);
FlowRouter.triggers.exit([cb1, cb2]);

关于javascript - 在 Meteor/Flow Router 中重新执行 Javascript 每条路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036553/

相关文章:

javascript - 如何在 jquery post 中返回数据?

javascript - 使用 Django 进行 Jquery 表单验证

javascript - 在网站中加载外国内容比 document.write() 更好的做法?

javascript - Meteor Spacebars 自定义分割助手不渲染

javascript - 我收到一个错误, 'cant set headers after they are sent',无论在 node.js 上发生什么,电子邮件上的错误消息都会不断出现

javascript - ajax使用codeigniter更新数据库中的数据

javascript - 为什么 Javascript 不通过 id 将值传递给文本框 MVC?

javascript - CssClass 属性的这个值是什么意思?

javascript - JQuery - 下拉菜单 - mouseenter/mouseleave

events - 在 Meteor 中停止事件传播