Как открыть панель при нажатии на URL в рельсах? - PullRequest
0 голосов
/ 01 сентября 2011

Я новичок в рельсах, и мне нужно знать, как открыть панель, щелкнув URL-адрес ??Пожалуйста, кто-нибудь может дать мне решение этой проблемы.

Ответы [ 3 ]

5 голосов
/ 01 сентября 2011

Вы можете посмотреть модальные диалоги на www.jqueryui.com.Добавьте jquery ui в ваше приложение.

Поместите скрытый элемент div (отображение: нет) на страницу макета.

<div class="modal" style="display:none;">
</div>

Ваша ссылка должна быть ссылкой ajax:

<%= link_to 'Link', events_path(@event), :remote => true %>

Ваш контроллер должен принять ответ ajax:

def show
  @event = Event.find(params[:id])
  respond_to do |format|
    format.js
  end
end

Вот где происходит магия.После нажатия на ссылку через ajax ваш файл show.js вставит содержимое в пустой скрытый div и отобразит всплывающее окно.У ваших представлений должен быть файл javascript: /view/events/show.js.erb

$('.modal').html("<%= escape_javascript(render(@event)) %>"); //inserts content into your empty div, be aware that the parameter needed to be quoted.
$('.modal').dialog(); //jquery ui will open it as a modal popup

В приведенном выше примере он будет отображать событие как частичное.Так что вы должны сделать это, создав файл _event.html.erb в / views / events /

5 голосов
/ 01 сентября 2011

Взгляните на Shadowbox , Colorbox или Lightbox .

Пример кода с использованием Shadowbox :

в теге вашей головы:

<%= stylesheet_link_tag "shadowbox" %>

в макете приложения (перед закрытием тега тела):

<%= javascript_include_tag "shadowbox.js" %>
<script type="text/javascript">
  Shadowbox.init({
    handleOversize: "drag",
    overlayColor: '#fff'
  });
</script>

И в ваших представлениях:

link_to(event.name, event_path(event), :rel => 'shadowbox;width=500;height=300;')

Обратите внимание, что вам может потребоваться изменить часть кода выше, в зависимости от того, где вы извлекли исходные файлы Shadowbox.Надеюсь, это поможет.

2 голосов
/ 01 сентября 2011

Открытие нового окна на самом деле не несет ответственности.Вы должны сделать это с помощью фрагмента JavaScript.Подумайте об этом:

<script type="text/javascript">
    window.open('desired/URL', 'windowName', 'height=200,width=200');
</script>

вам следует подобрать третий аргумент для ваших нуждПосмотрите: http://www.javascript -coder.com / window-popup / javascript-window-open.phtml

Обратите внимание, что при использовании фрагментов rails в js нет проблем (<%=%>), поэтому вы можете сделать ссылку гибкой, используя некоторый вспомогательный метод.

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