"(#tabs) .tabs - это не функция" - Что не так с установкой jquery с помощью rails 3.1.3? - PullRequest
2 голосов
/ 14 февраля 2012

Ошибка (в application.js) отображается в firebug при загрузке страницы входа с localhost: 3000, и страница зависает. Gemfile выглядит так:

gem 'jquery-rails', '~>1.0.19'

Код (включая обязательный), вызывающий ошибку выше в файле application.js:

//= require jquery
//= require jquery_ujs
//= require_tree .

$(document).ready(function() {
    $("#tabs").tabs();
});

Цель кода - загрузить вкладку пользовательского меню и скопировать ее из другого работающего приложения.

В applicationaion.html.erb у нас есть следующее:

<head>
  <title><%= title %></title>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>

Есть мысли об ошибке? Большое спасибо.

UPDATE:

html исходный код страницы:

<!DOCTYPE html>
<html>
<head>
  <title>Login</title>
  <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/sessions.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/users.css?body=1" media="screen" rel="stylesheet" type="text/css" />
  <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/sessions.js?body=1" type="text/javascript"></script>

<script src="/assets/user_menus.js?body=1" type="text/javascript"></script>
<script src="/assets/users.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
  <meta content="authenticity_token" name="csrf-param" />
<meta content="qdYThMHV8HB+Joc9HnE3ZiR/S0hkIeulOuMsIt3iFiw=" name="csrf-token" />
</head>

<body id="login">



<h1>Login</h1>
<form accept-charset="UTF-8" action="/session" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="qdYThMHV8HB+Joc9HnE3ZiR/S0hkIeulOuMsIt3iFiw=" /></div>

<div>
    <p><label for="email">Name:</label> <input id="email" name="email" type="text" value="" /></p>
    <p><label for="password">Password:</label> <input id="password" name="password" type="password" value="" /></p>
    <p><label></label><input class="button" name="commit" type="submit" value="login" /></p>
</div>
</form>

</body>
</html>

Ответы [ 3 ]

4 голосов
/ 14 февраля 2012

Вам нужно добавить //= require jquery-ui к вашему application.js файлу, если вы хотите использовать функциональность jQuery UI.

См. README проекта

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

Позвольте мне предварить это словами, что я не использовал Ruby.

Однако это сообщение согласуется с попыткой использовать jquery, когда файл jquery.js не был загружен.

Используйте источник просмотра вашего браузера, чтобы увидеть, на что действительно распространяется <%= javascript_include_tag "application" %>. Если необходимо, добавьте html-комментарии, чтобы определить, что генерируется этой строкой кода.

<!-- before -->
<%= javascript_include_tag "application" %>
<!-- after -->
1 голос
/ 14 февраля 2012

user938363,

Код выше всего HTML, который у вас есть?Если нет, не могли бы вы вставить сгенерированный код, пожалуйста, это действительно помогло бы.

В любом случае, на первый взгляд, я не вижу, где находится <div id='tabs'> ??Добавив этот элемент, вы можете продвигаться дальше (если, конечно, <%= csrf_meta_tags %> не заполнит div соответствующим div / id.

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