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

rails triggering js action on reload

本文关键字:js 操作 加载 新加载 rails      更新时间:2023-09-26

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

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

现在,如果用户通过单击属于post_comment_reply的通知进入页面,我希望在页面加载时默认情况下可以看到给定的post_comment_replydiv。

在铁轨上,最好的方法是什么?

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的几种方法。您可以通过以下方式将referrer值传递给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 %>

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