Как отобразить диалог на странице как ответ Rails JS? - PullRequest
0 голосов
/ 19 августа 2010

Я использую плагин jquery colorbox в качестве решения для всплывающих / модальных диалоговых окон на моем сайте.Когда я даю ответ js клиенту, я хочу открыть всплывающее окно.Я написал следующий код в моем response1.js.erb

$.colorbox();

Я правильно получаю ответ от сервера, но пока он выполняется в браузере, firebug сообщает об ошибке, например

$.colorbox() is not a function

как еще я могу выполнить задачу?пожалуйста помоги.Все мои связанные javascripts (jquery, colorbox) загружаются должным образом, когда страница загружается (я проверил HTML-файл исходного кода страницы)

Ответы [ 2 ]

0 голосов
/ 11 мая 2011

Убедитесь, что JS-файл Colorbox загружается перед вызовом $.colorbox(). Если вы ссылаетесь на эту функцию до ее добавления в объект jQuery, она будет недоступна. Вы также должны убедиться, что $ ссылается на jQuery в контексте, в котором вы его используете. Если вместо этого он ссылается на Prototype, то вы можете получить эту ошибку. Также, если вам случается загружать jQuery дважды, то объект jQuery теряет свои расширения, которые были загружены до того, как jQuery последний раз был включен на страницу. Некоторые плагины jQuery предпочитают включать jQuery в свои миниатюрные или упакованные дистрибутивы - это дурной тон - однако это может часто вызывать эту проблему. Поэтому убедитесь, что в ваших библиотеках нет jQuery после того, как вы уже это сделали.

Лучший способ убедиться, что $ всегда ссылается на jQuery, - это заключить его в замыкание, подобное этому:

(function($){
  // notice the $ argument of the anonymous function
  $('#dollarsign').is('.jQuery');
  // this last line executes the anonymous function and passes in jQuery as $
})(jQuery);
0 голосов
/ 11 мая 2011

Это работает для меня, вы используете format.js, который вызывает ваш page.js.erb?У меня действительно есть проблема, когда я использую $.colorbox({html:'<p>testing 123..</p>'}) прямо в своем документе, готовом для моего приложения, говоря, что $box не определеноНе уверен, почему это так.Но в отношении того, что я вижу из вашего ограниченного примера, это должно сработать.

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