Ember 2:如何添加自定义jQuery

问题描述:

以下哪里去?Ember 2:如何添加自定义jQuery

$('a').click(function() { 
    $('html, body').animate({ 
     scrollTop: $($.attr(this, 'href')).offset().top 
    }, 500); 
    return false; 
}); 

我也在Rails环境中工作,然后在Rails应用程序中使用Ember前端。我在Ember供应商的文件夹中试过它,并在ember-cli-build.js中调用导入,当我去测试它时,没有任何工作。我错过了一步吗?

当您在ember-cli-build.js上添加app.import时,会使该代码成为vendor.js文件的一部分。 vendor.js文件在应用程序可用之前下载并执行(据我所知)。这意味着您的模板不会在代码执行时呈现,并且您的$('a')将返回一个空列表(因此它为什么不起作用)。

如果你想要做的正是我相信你可能需要做事件委托,像这样:

$("body").on("click", "a", function() { 
    $('html, body').animate({ 
    scrollTop: $($.attr(this, 'href')).offset().top 
}, 500); 
return false; 
}); 

所以,你委托你的点击事件a链接时是在应用程序已经可用,他们。

像这样运行代码(jQuery代码)的烬路可能会创建一个组件,但我不知道你试图用这个代码实现什么。

+0

只有在我的主页上,当我点击导航链接时,我只想让它滚动到其指定的定位标记。我试过上面的代码,但仍然无法正常工作。当我把它直接放在控制台中时,代码确实起作用。所以我的问题是,我无法找到一种方法来调用这个页面加载后。通过组件方式,因为我对Ember应用程序来说是全新的,为了实现这一点,我需要什么?请包括文件名称的示例以及该文件的具体内容。 – user1917032

+0

您可以分享有关该主页/导航链接的更多详情吗?它是一个组件,带{{link-to}}的模板。 –