Невозможно отобразить модальный загрузчик Twitter после запроса ajax - PullRequest
5 голосов
/ 12 декабря 2011

Я хочу показывать модальное окно при нажатии на ссылку, но также хочу сделать ajax-запрос, чтобы получить объект, который должен быть показан в модальном окне.

Я получаю ответ с содержимым, которое необходимо отобразить в модальном окне, но оно не появляется, поскольку модальное окно, вероятно, не выполняет скрипт.

код

Главная страница

  <%= link_to "New Topic", "#", :class => 'btn primary float-right bootstrap-popover'   %>
  <div id="modal_form_container"></div>

код Javascript

   $('a.bootstrap-popover').live('click',  function(){
   $(this).unbind('click');

   $.ajax({
          url: "/topics/new",
          type: "GET",
          dataType: "html",


          complete: function() {
            $('loading').hide();
          },

     success: function(data) {

     },

     error:function() {
        }
      }); // End of Ajax

new.js.erb

$('#modal_form_container').html("<%= escape_javascript( render :partial => 'new_form')%>");   
$('#modal_form').modal('show');             

Эта страница new_form содержит контент для отображения в модальном окне

Кто-нибудь может помочь?

Ответы [ 3 ]

0 голосов
/ 24 декабря 2011

Я думаю, вам нужно написать что-то вроде следующего кода после того, как ваш запрос ajax будет успешным.

$('#PopupBoxId').modal('show');      // Show the pop-up (modal)
$('#disable_layer').modal('show');   // Show the black overlay

Мы должны вручную показать всплывающее окно после обработки запроса ajax. Согласно моему небольшому опытув начальной загрузке.:)

Надеюсь, у вас это получится.

0 голосов
/ 05 декабря 2012

Вы смотрели в Bootstrap Модальный Менеджер ? Вы можете использовать его так:

$("a.open-with-ajax-loader").live('click', function(e){
  e.preventDefault();
  $('body').modalmanager('loading');
  $('#id-of-modal-div').modal({
    remote: '/url/to/load'
  });
});

Вы можете увидеть это в действии на живой демонстрационной странице для Bootstrap Modal Manager (прокрутите немного вниз, посмотрите демоверсию AJAX).

0 голосов
/ 12 декабря 2011

Это потому, что загрузочный элемент не скрыт?

$('loading').hide();

Разве это не должно быть что-то вроде:

$('#loading').hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...