我有一个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 %>