Почему этот код Rails JQuery в application.js не работает? - PullRequest
2 голосов
/ 16 февраля 2011

Вот что я использую:

application.js:

$('#hfb').mouseup(function(){
$('#hideform').css('display', 'none');
});

глава из application.html.erb:

<head>
<title>CommentsApp</title>
<%= stylesheet_link_tag 'application', 'grid' %>
<%= javascript_include_tag  "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %>
<%= javascript_include_tag  "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" %>
<%= javascript_include_tag "jquery-rails.js" %>
<%= javascript_include_tag "application.js" %>

<%= csrf_meta_tag %>
</head>

и вещь, которую я хочу скрыть:

<a href="" id="hfb">Hide Form</a>
<div id="hideform">
<% form_for Comment.new, :remote => true do |f| %>
#form stuff
<%= f.submit "Add comment" %>
<% end %>
</div>

Что мне здесь не хватает?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Я не уверен, почему вы пытаетесь поднять мышь, я бы просто использовал click () и hide ()

$(document).ready(function() {
  $('#hfb').click(function(){
    $('#hideform').hide();
    return false;
  });
});

Это также может привести к перезагрузке страницы, поэтому возвращение false из обработчикахорошая идея.

edit idlefingers тоже есть хорошая идея.Вы не можете запустить обработчики, пока документ не будет готов.

2 голосов
/ 16 февраля 2011

Вам нужно использовать $(document).ready в вашем JS.Кроме того, вы можете использовать метод jQuery 'hide' вместо явного изменения CSS (это все, что делает Hide - он просто читает чуть лучше):

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