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

时间:2012-02-17 05:10:42

标签: javascript ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有一个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;
});

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

= 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;"

但点击时的超链接不会从部分加载相应div标签中的文本区域。 js文件正在浏览器中加载,示例警报也正在运行!!

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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