ReferenceError:$未定义函数错误

时间:2012-12-05 13:41:19

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

我的jquery脚本遇到了麻烦。谁想要计算旧推文上的字符数。我正在ReferenceError: $ is not defined指点

$(function() {

这是我在轨道应用程序上的脚本。

index.hml.erb

<% title "Welcome #{current_user.username}" %>

<script type="text/javascript">
    $(function() {
        $('#flit_message').keyup(function(){
            var content_lenght = $(this).val().length;
            var remaining = 140 - content_length
            $('#char_count').html(remaining);
        })
    })
</script>
<%= form_for Flit.new, :html => {:id => 'new_flit_form'}    do |f| %>
    <h3 style="float: left;">What are you doing?</h3>
    <h3 id="char_count" style="float: right;font-size: 23px; font-weight: bold; color: #aaa;">140</h3>
    <div class="clear"></div>
    <!-- <div id="new_flit_form"> -->
    <%=h f.text_area :message %>
    <div id="latest_message">
        <strong>Latest: </strong><%=h @last_flits.message %>
        <%= distance_of_time_in_words_to_now(@last_flits.created_at)%> ago
    </div>
    <div id="submit_button_container">
    <%=h f.submit "update", :class => "button"  %>
    </div>
    <div class="clear"></div>

    <!-- </div> -->
    <% end %>



    <ul id= "flits_list">
        <% @flits.each do |flit| %>
            <li<% if @flits.first == flit %> class="first"<% end %>>
            <%= image_tag flit.user.gravatar_url %>
            <div class="flit_message_container">
            <%=h link_to flit.user.username %>
              <%=h flit.message %>
            <div class="time_ago">
              <%= distance_of_time_in_words_to_now(flit.created_at)%> ago
            </div>
            </div>
            <div class="clear"></div>
            </li>
            <% end %>
    </ul>

这里是application.js文件

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .

html页面源代码

<!DOCTYPE html>
<html>
  <head>
    <title>Welcome breanne</title>
    <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/flits.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/home.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/welcome.css?body=1" media="screen" rel="stylesheet" type="text/css" />
    <script src="/assets/defaults.js" type="text/javascript"></script>
    <meta content="authenticity_token" name="csrf-param" />
<meta content="JnHvVRrW5Ts6TQf+D35OByvXxEY+Gl6P5NU5dVs8r3o=" name="csrf-token" />

  </head>
  <body>
    <div id="container">
      <h1>Welcome breanne</h1>

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" >
        $(function() {
            $('#flit_message').keyup(function(){
                var content_lenght = $(this).val().length;
                var remaining = 140 - content_length;
                $('#char_count').html(remaining);
            })
        })
    </script>

1 个答案:

答案 0 :(得分:3)

99%的时间这意味着在本节之前JQuery没有被包含在页面中。你把它包括在哪里?

在头标记

中包含这样的内容
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />

请参阅:http://jquery.com/download/

您可能想要取消注释该文件中的JQuery行(删除//) 加载页面时,查看源代码并查看是否可以看到jquery包含。如果它不在那里你的申请不适当包括它。