Нажмите ссылку в простой модальный, чтобы открыть новый простой модальный - PullRequest
1 голос
/ 02 февраля 2011

Поэтому я хочу, чтобы мои пользователи могли щелкать ссылку в простом модальном окне jquery, закрывать текущий модальный блок и открывать новый с новым контентом.

Пока это не сработало:

$('#search_dialog_link').click(function () {
        $("#search_dialog").modal(
            {
                position: [150,125],
                minWidth: 400
            }
    );
});    

$('#create_course_link').click(function() {
   $.modal.close();
   $('#add_course_dialog').modal(
       {
        position: [150,125],
        minWidth: 400
       }
    );
});

Где #search_dialog_link, #create_course_link, #search_dialog и #add_course_dialog установлены следующим образом:

<div id="default-content">
This is the page where all of your classes and a list of upcoming assignments will be displayed.
Since you do not have any classes, why not try to add one by clicking the link below.<br><br>
<center><div id="search_dialog_link">+Add a Course</div></center>
</div>
</div>
<div id="search_dialog">
<p>Search for the teacher of your class:</p>
<form id="searchform"><input type="text" width="200px" size="30" value="" id="inputString" />
<div style="font-size: 10; position:relative; bottom:20px; left: 200px;">Dont see it?<div id="create_course_link">Create</div> a new class.</div>
</form>
</div>
<div id="add_course_dialog">
<p>Test</p>
</div>

Обратите внимание, что окно #search_dialog открывается правильно, и когда пользователь щелкает ссылку div #create_course_link, закрывается оригинальное модальное окно. Но новая модальная коробка не отображается. Что я делаю не так?

Ответы [ 3 ]

4 голосов
/ 02 февраля 2011

В версии 1.4.1 есть «ошибка», которая, вероятно, вызывает проблему. Чтобы решить проблему с Opera, в функции close вызывается setTimeout.

Чтобы обойти это, вы можете обновить свой код следующим образом:

$('#create_course_link').click(function() {
   $.modal.close();

   setTimeout(function () {
      $('#add_course_dialog').modal(
      {
       position: [150,125],
       minWidth: 400
      }
      );
   }, 20);
});
0 голосов
/ 29 марта 2012

Это, похоже, исправлено в simplemodal 1.4.2, я предлагаю обновить.

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

Ответ Эрика должен сработать, так как он сам разработал эту вещь. ОДНАКО, это заставило бы простой модал исчезнуть и открыть новый. Это может быть нежелательно.

Я столкнулся с этой ситуацией при раннем использовании simpleModal, так как я сумасшедший архитектор (я не считаю себя программистом, но смог соединить 2 и 2).

Чтобы обойти это, создайте глобальную переменную и глобальный массив. Используйте глобальную переменную в качестве указателя на экран и глобальный массив в качестве содержимого «наложения». Таким образом, вы сможете перемещаться вперед и назад без необходимости закрывать модальное окно.

Это была моя ранняя реализация скриннинга в первые дни Clipper (помните это?). Я использовал его с программированием на Паскале (да, я был программистом на Паскале ... но отказался от него).

Взгляните сюда: http://clubetititi.com. Это на португальском языке, но вы не должны испытывать проблем при навигации.

Удачи!

...