以下是哪里?
$('a').click(function() {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
我也在Rails环境中工作,然后在Rails应用程序内部的Ember前端。我在Ember供应商的文件夹中尝试了它,并在ember-cli-build.js中调用了导入,当我去测试它时,没有任何作用。我错过了一步吗?
答案 0 :(得分:0)
当您在app.import
上添加ember-cli-build.js
的内容时,会将该代码作为vendor.js
文件的一部分。在应用程序可用之前,已下载并执行vendor.js文件(据我所知)。这意味着您的模板在执行代码时不会呈现,而$('a')
将返回一个空列表(因此它无法正常工作)。
如果您想要完全相同,我相信您可能需要进行事件委托,如下所示:
$( "body" ).on( "click", "a", function() {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
这样,您就可以将点击事件委托给应用中已有的a
个链接。
运行这样的代码(jquery代码)的ember方式可能是创建一个组件,但我不确定你要用这个代码实现什么。