0

我的 jquery 脚本遇到了麻烦。谁应该计算旧 twitter 方式上的字符数。我开始ReferenceError: $ is not defined指点

$(function() {

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

索引.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>
4

1 回答 1

3

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

像这样在head标签中包含它

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />

见:http: //jquery.com/download/

您可能希望取消注释该文件中的 JQuery 行(删除 //)当您加载页面时,查看源代码并查看是否可以看到 jquery 包含。如果它不存在,则您的应用程序没有正确包含它。

于 2012-12-05T13:44:31.057 回答