2012-07-18 3 views
2

현재 각 목록에 댓글을 달 수있는 목록이있는 페이지가 있습니다. 여기 Rails + 눈에 잘 띄지 않는 자바 스크립트를 사용하여 댓글 목록에 덧글 추가

는 년대 _new.html.haml이 발생하고있어 부분적인 모든 목록의 마지막

<div class="comment add-comment row-fluid"> 
    <div class="avatar"> 
    <img alt="Admin User1" src="http://localhost:3000/assets/DDDDDD.png"> 
    </div> 
    <div class="message"> 
    <form accept-charset="UTF-8" action="/suggestions/50057a3160de7d361d000061/comments" class="new_comment" data-remote="true" id="new_comment" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" value="✓" type="hidden"><input name="authenticity_token" value="vVw7kLNGF4AiXmOMjryPDI70Mz5paZnW3usdgzxLsik=" type="hidden"></div> 
    <fieldset> 
     <div class="control-group"> 
     <div class="controls"> 
      <textarea cols="40" id="comment_content" name="comment[content]" placeholder="Add a comment..." required="required" rows="20"></textarea> 
     </div> 
     </div> 
     <input class="btn btn-primary" name="commit" value="Post" type="submit"> 
    </fieldset> 
</form> 
    </div> 
</div> 

내가 코멘트를 만들 겸손한 자바 스크립트를 사용할 수 있었다, 그러나 나는 create.js.haml를로드 할 때, 나는 DOM 객체가 부착 모르겠어요 그것까지. 내 comments/create.js.haml에서

, 나는 add-comment 클래스는 모든 목록에 공통이기 때문에

$(".add-comment").before("#{escape_javascript(render partial: "comments/show", locals: { :comment => @comment })}") 

는 분명히 문제가 해결되지 않고 있습니다. 방금 만든 목록의 내용을 올바른 목록에 추가하고 새 덧글 추가 섹션을 표시 할 수있는 방법이 있습니까?

답변

0

마침내 해결할 수있었습니다. 디버깅 눈에 잘 띄지 않는 JavaScript는 일반 JS보다 조금 어렵습니다. Chrome Dev Tool의 네트워크 기능에 감사드립니다. 내 시야에서

, 전 공정 DOM 요소로 변환하고, I는 상기 제어기에 의해 전달되는 가변 @commentable로부터 ID를 가지고, create.js.haml 내에 그런 다음 id

<div class="comment add-comment row-fluid" id="500614e960de7d313a000189"> 
    ... 
</div> 

추가 좀 더 JS.

var div_id = $('.stream-item').find("##{escape_javascript(@commentable.id.to_s)}") 
div_id.find("textarea").val(""); 
div_id.before("#{escape_javascript(render partial: "comments/show", locals: { :comment => @comment })}") 
관련 문제