作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Rails 应用程序中,用户可以对帖子发表评论。当用户提交评论时,此代码将从 CommentsController 运行:
def create
@comment = Comment.new(comment_params)
@comment.user_id = current_user.id
@matchup = Post.find(comment_params[:post_id])
if @comment.save
respond_to do |format|
format.js
end
end
end
我设置了它,所以当创建评论时,我在 comments/create.js.erb 中运行这段代码
$("#comment-form-<%= @post.id %>").replaceWith("<%= j render partial: 'comments/comment_form', locals: {post: @post} %>"),
$("#new-comment-<%= @post.id %>").replaceWith("<%= j render partial: 'comments/comment', locals: {post: @post, comment: @comment} %>");
这将重新呈现评论表单并将用户的新评论呈现在评论列表的顶部。它非常适合第一条评论。
但是,如果用户不刷新页面并留下第二条评论,则此代码不起作用。第二条评论已创建,但仅在刷新页面时才会出现。说到 JS,我是个新手。我错过了什么?
最佳答案
创建新评论时,您不需要替换原来的评论dom,您可能需要在新评论之前/之前/之后附加/添加新评论。尝试更改:
$("#new-comment-<%= @post.id %>").replaceWith("<%= j render partial: 'comments/comment', locals: {post: @post, comment: @comment} %>"
收件人:
$("#new-comment-<%= @post.id %>").before("<%= j render partial: 'comments/comment', locals: {post: @post, comment: @comment} %>"
关于javascript - 允许用户在不刷新页面的情况下发表多条评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36671532/
我计划在网页上安装 Facebook 评论模块/插件,比方说: http://www.example.com/ 是否可以将用户重定向到网站内的另一个登录页面?假设我想在点击发表评论后将它们发送到这里:
我是一名优秀的程序员,十分优秀!