我有一个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();
});

最佳答案

如另一个用户所建议的那样,设置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 %>

10-07 19:04
查看更多