Javascript не работает на странице приложения Rails - PullRequest
1 голос
/ 17 февраля 2012

У меня есть javascript, часть которого, как указано ниже, показывает, что при нажатии на тег привязки с классом to_comment появится текстовое поле внутри классов div, упомянутых в js.

$(".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")

И я жестко закодировал текстовую область для отображения в теге div в части _new.html.slim следующим образом:

.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 ]

1 голос
/ 17 февраля 2012

Попробуйте поместить свой код Javascript в блок

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

для обеспечения выполнения кода после полной загрузки dom. В противном случае может случиться так, что ваш HTML не будет загружен полностью, когда Javascript пытается найти элементы, имеющие класс to_comment.

0 голосов
/ 17 февраля 2012

Первое, что я заметил, это то, что .actor_logo_new_comment установлено на display: none, но пока нет вызовов, чтобы показать это в вашем коде. Обратите внимание, что вызов .show() для элемента не покажет всех его дочерних элементов - вам нужно будет вызвать .show() для скрытых элементов напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...