rails在重新加载时触发js动作

时间:2016-03-22 16:13:20

标签: javascript jquery ruby-on-rails

我有一个rails4应用程序。我想在页面加载时触发一些js事件,但前提是用户来自给定的页面。

默认情况下,所有评论回复都隐藏在post#index页面上。如果用户点击div,则相应的回复将变为可见。

现在,如果用户通过点击属于post_comment_reply的通知进入该页面,我希望默认情况下在页面加载时显示给定的post_comment_reply div。

rails中首选的方法是什么?

JS

$(document).on('click', '.open-post-comment-reply', function (event) {
  var post_comment_id = $(this).data('pcid');
  $('#post-comment-replies-' + post_comment_id).toggle();
});

2 个答案:

答案 0 :(得分:1)

您可以在指定页面上的链接onclick事件中附加Cookie,然后在显示评论框后将其删除。

答案 1 :(得分:1)

根据其他用户的建议,设置cookie会起作用。您还可以检查导轨中的request.referrer以查看它们的来源。

从那里处理触发js的几种方法。您可以使用以下内容将引用者值传递给js:

<div class="some-class" data-referrer="<%= request.referrer %>">

然后在你的js中,如果你正在使用jQuery:

if ($('.some-class').data('referrer') == 'whatever_url'){
  // run your code
}

您也可以直接在视图中添加条件。可能不那么干净但是像:

<% if request.referrer == 'whatever_url' %>
  <script>
    // code to run
  </script>
<% end %>