首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript挑战--Rails按钮迭代

JavaScript挑战--Rails按钮迭代
EN

Stack Overflow用户
提问于 2016-02-02 15:29:00
回答 1查看 59关注 0票数 0

在我的welcome#index页面上,有一个按钮可以使用AJAX远程(或者应该说是异步地)为Article编写一个新的Comment

除了使用rails迭代文章时,浏览器在所有迭代元素(文章)中都将JS按钮视为相同的按钮外,它的工作原理是完美的。

我猜想JS迭代是必需的。

如何解决这个问题?

# welcome/index.html.haml

代码语言:javascript
复制
- @articles.each do |article|
        = link_to "Comment", new_article_comment_path(article), class: "write-button", remote: true
        = link_to "Close", root_path, class: "close-button", remote: true
        = link_to "Commented", root_path, class: "written-button", remote: true
        #comment-form{ :style => "display:none;" }

#comments/new.js.erb

代码语言:javascript
复制
$( '#comment-form' ).html('<%= j render ("form") %>');
$( '#comment-form' ).slideDown( "slow ");
$( '.write-button' ).hide();
$( '.close-button' ).show();

#comments/create.js.erb

代码语言:javascript
复制
$( '#comment-form' ).slideUp(350);
$( '.close-button' ).hide();
$( '.written-button' ).show();

#welcome.js

代码语言:javascript
复制
//slide up and return
$( '.close-button' ).hide();
$( '.close-button' ).on('click', function() {
    $( '#comment-form' ).slideUp(350);
    $( '.close-button' ).hide();
    $( '.write-button' ).show();
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-02 16:26:25

如果我正确理解,您需要为comment-form div提供一个comment-form,该div等于article.id,这样form就会出现在这个受尊敬的article上。

代码语言:javascript
复制
%div{:id => "comment-form-#{article.id}", :style => "display:none;"}

并将comments/new.js.erb更改为下面

代码语言:javascript
复制
#comments/new.js.erb

$( "#comment-form-<%= params[:article_id] %>").html('<%= j render ("form") %>');
$( "#comment-form-<%= params[:article_id] %>" ).slideDown( "slow ");
$( '.write-button' ).hide();
$( '.close-button' ).show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35157457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档