0

在我的 rails 应用程序中,我试图为搜索按钮包含 jquery 焦点效果。当鼠标悬停在该按钮上时,它应该改变颜色。但是 jquery 代码不起作用,尽管我尝试使用 search.js、search.js.erb。在 gems 文件中,我还在 Gem 文件中包含了 jquery rails 并尝试了捆绑安装。

<!DOCTYPE html>
<html>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
      $(document).ready(function(){
      $("text_field_tag").focus(function(){
      $(this).css("background-color","#cccccc");
      });
      $("text_field_tag").blur(function(){
      $(this).css("background-color", "#ffffff");
      });
      });
    </script>
    <body>
      <%=form_tag({controller: 'tweets', action:'index'},  method: "get") do %>
      <%=label_tag(:search, "Search for:") %>
      <%=text_field_tag(:text) %>
      <%=label_tag(:show, "Show for:") %>
      <%=text_field_tag(:show) %>
      <%= submit_tag( "GO" ) %>
      <% end %>
    </body>

</html>

我也尝试通过删除“script src”标签,即使它不起作用。任何人请帮忙..

4

2 回答 2

0

你犯了一个小错误,但不要担心。按照我下面的建议做。
1) 为 text_field_tag 提供 id,如 <%=text_field_tag(:show,'',:id=>'show_fld') %>
2) 获取该 id 并将其作为 jQuery 函数中的 DOM。喜欢

<script>
  $(document).ready(function(){
    $("#show_fld").focus(function(){
      $(this).css("background-color","#cccccc");
    });
    $("#show_fld").blur(function(){
      $(this).css("background-color", "#ffffff");
    });
  });
</script>

现在以上将起作用。

于 2013-08-31T07:04:37.590 回答
0

如果您使用的是 rails 3,则可以使用 sprockets 来包含所需的一切。

  • 添加gem 'query-rails'到 Gemfile 的资产组
  • //= require jquery和添加//= require jquery_ujs到您的 application.js 文件中
  • 确保您的 application.html.erb 文件仍然包含<%= javascript_include_tag "application" %>
于 2013-08-31T07:06:01.300 回答