我是在我的JS中获取Rails变量的宝石。我在我的主页上有不同的活动,其中包含帖子,当我点击“活动”div时,我会重定向到显示所有帖子的页面,并且由于插件同位素,帖子会被相应的活动过滤掉单击,然后用户可以选择单击其他过滤器。
当用户点击时,我传递了活动的值:
<%= link_to 'Voir les idées', pages_enplace_path(:activite => activite.id)%>
我在控制器中使用 gon gem ,我会过滤帖子:
def enplace
@activity = params[:activite]
gon.activity = @activity
end
然后在我的 JS
中var $grid = $('.grid').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
filter: '.category-'+gon.activity
});
问题是宝石的JS在第一次加载时没有加载,我需要刷新页面才能看到我的帖子被过滤掉了。你有什么主意吗 ?
刷新页面时,这是 JS
<script type="text/javascript">
//<![CDATA[
window.gon={};gon.activity="3";
//]]>
</script>
答案 0 :(得分:0)
在加载所有页面元素后,确保在应用程序布局的底部加载Javascript。这可以确保在绑定到Javascript中的事件时所有页面元素都可用。