RoR Facebox для прототипа - PullRequest
       0

RoR Facebox для прототипа

1 голос
/ 24 августа 2010

У меня есть facebox, работающий с использованием следующих тегов в моем приложении rails

<%= link_to 'test' some_path, :rel => 'facebox' %>

Теперь это отлично работает, если страница уже загружена.

Однако у меня есть обновления ajaxнекоторые части страницы, которые содержат новые ссылки, такие как показанные выше.

Когда вы нажимаете на ссылки из обновлений ajax, окно не работает, после шаблона следует.

Я считаю, так какстраница не обновляется, исходный код такой же, и: rel => 'facebox' не работает.

У кого-нибудь есть советы, как заставить это работать, не обновляя страницу?

Я пробовал это в методе в контроллере.

render :update do |page|
  page << "
    facebox.loading();
    facebox.reveal('text', null); 
    new Effect.Appear(facebox.facebox, {duration: .3});     
  "  
end

Однако по какой-то причине в chrome и IE лицевая панель появляется на короткую секунду, а затем исчезает.

Любой совет?Я весь день стучал головой о стену.

Спасибо

1 Ответ

1 голос
/ 24 августа 2010

Все, что вам нужно сделать, это убедиться, что вы делаете вызов javascript для facebox где-то в представлении своего ответа AJAX: возможно, лучшее расположение будет в файле макета.Просто убедитесь, что вы включили следующее:

#app/views/layouts/ajax.html.erb
#...snip...

<% javascript_tag :defer => 'defer' do -%>
  jQuery(document).ready(function($) {
    $('a[rel*=facebox]').facebox();
  })
<% end -%>

или с прототипом (не проверено):

#app/views/layouts/ajax.html.erb
#...snip...

<% javascript_tag :defer => 'defer' do -%>
  document.observe("dom:loaded", function() {
    $$('a[rel*="facebox"]').facebox();
  });
<% end -%>

Это будет гарантировать, что любые новые ссылки, которые появляются на странице, как часть вашегоОбновления AJAX, будут обрабатываться facebox.

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