Javascript无法在Rails应用程序页面中工作

Javascript not Working in Rails app page

本文关键字:工作 应用程序 Rails Javascript      更新时间:2023-09-26

我有一个javascript,其中一部分如下所示,单击类为to_comment的锚标记时,将在js中提到的div类中显示文本框。

$(".to_comment").live("click", function(){
$(this).parents(".activity_content").find(".activity_new_comment").show();
$(this).parents(".activity_content").find(".input_new_comments").click();  
$(this).parents(".activity_content").find(".input_new_comments").focus();
return false;
});

我在瘦文件中的一个页面中有一个简单的锚标记:

= link_to("Comment", "#", :class => "to_comment")

我已经将文本区域硬编码为显示在_new.html.slim部分的div标记中,如下所示:

.activity_new_comment style="display: block;"
  .actor_logo_new_comment style="display: none;"
    .activity_content
      .actor_name_new_comment style="display: none;"
      form#new_commentactivity_22.new_comment accept-charset="UTF-8" action="/comments" data-remote="true" method="post"
        div style="margin:0;padding:0;display:inline"
          input#comment_owner_id name="comment[owner_id]" type="hidden" value="2"
            input#comment__activity_parent_id name="comment[_activity_parent_id]" type="hidden" value="22"
              .input_new_comments_container
                textarea#comment_text_activity_22.input_new_comments cols="40" name="comment[text]" rows="1" style="color: rgb(102, 102, 102);"
            #copy_comment_text_activity_22.copy_new_comment Write a comment...
                  .activities_comment_btn style="display: none;"

但是单击时的超链接不会从partial加载相应div标记中的文本区域。js文件正在浏览器中加载,一个示例警报也在工作!!

尝试将您的Javascript代码放入块中

$(document).ready(function() {
  // code here
});

以确保代码在dom完全加载后执行。否则,当Javascript试图查找具有to_comment类的元素时,可能会发生HTML未完全加载的情况。

我注意到的第一件事是.actor_logo_new_comment被设置为display: none,但没有在代码中显示它的调用。请注意,在元素上调用.show()不会显示它的所有子元素——您需要直接在隐藏的元素上调用.show()