Rails 3 Jquery UI Диалог - PullRequest
       1

Rails 3 Jquery UI Диалог

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

Я пытаюсь реализовать простой диалог с Jquery и Rails 3. Я установил Jquery с помощью гема, и команда 'rails generate jquery: install --ui'.Кажется, все работает нормально.Я могу отправить формы через Ajax и сделать ненавязчивый JS с файлами js.erb.Моя проблема в том, что я не могу заставить работать простой чёртов диалог.

Вот мой JS:

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

и html:

<div id="dialog" title="Dialog">BLAH BLAH BLAH</div>

Достаточно просто правильно??Хорошо, когда страница загружается, я получаю это от Firebug:

$("#dialog").dialog is not a function

Я могу видеть как js min, так и обычные js-файлы, включенные.Я даже могу перейти к функции диалога в jquery-ui.js, поэтому я не знаю, почему это не работает.Есть идеи??

Ответы [ 3 ]

1 голос
/ 05 марта 2011

Для дальнейшего использования, обратите внимание, что вы можете контролировать порядок загрузки в config / application.rb:

config.action_view.javascript_expansions[:defaults] = %w(jquery jquery-ui.min rails)
0 голосов
/ 11 февраля 2011

Исправлена!После часов на гуглере и не нашел ничего.Я начал играть с файлами Jquery по умолчанию, загруженными прямо с основного сайта.Обмениваясь ими с созданными файлами UJS, я понял, что порядок имеет значение.Поэтому переименование файла jquery-ui.js в jqueryui.js обеспечило загрузку файлов jquery.js перед файлами пользовательского интерфейса.Полагаю, это очевидно, но я мало что видел в порядке файлов Jquery, и использование генератора для установки Jquery называет их так.Я использую Mac, так что, может быть, искатель упорядочил файлы по-другому, чем другие машины ????Я знаю, что не могу быть единственным человеком, который имел эту проблему при использовании имен по умолчанию.Тем не менее всякий раз, когда вы используете Jquery, всегда загружайте пользовательский интерфейс после основной библиотеки Jquery !!

0 голосов
/ 10 февраля 2011

В противном случае вы должны иметь опечатку где-нибудь.Кажется, у вас есть все остальное на месте.

Поскольку я не использовал гем jquery, я просто создал с ним проект, создал проект, пустую модель, "страницу" и добавил свой код в файл application.html.erb, заменивуступил, и все заработало.

My application.html.erb

  1 <!DOCTYPE html>                                                                                
  2 <html>
  3 <head>
  4   <title>Jq</title>
  5   <%= stylesheet_link_tag :all %>
  6   <%= javascript_include_tag :defaults %>
  7   <%= csrf_meta_tag %>
  8   <script>
  9   $(document).ready(function(){
 10     //console.log("loaded");
 11     $("#dialog").dialog();
 12   });
 13 
 14 </script>
 15 
 16 </head>
 17 
 18 <body>
 19 
 20 
 21 
 22 
 23 <div id="dialog" title="Dialog">BLAH BLAH BLAH</div>
 24 
 25 
 26 </body>
 27 </html>

Вам нужно добавить CSS, конечно ..

...