Возможен диалог из встроенного содержимого?

#jquery #templates #layout #jquery-mobile #modal-dialog

#jquery #шаблоны #макет #jquery-мобильный #модальный диалог

Вопрос:

Возможно ли создать диалоговое окно jQuery Mobile с использованием встроенного содержимого на той же странице?

Например:

 <div data-role="page">
    <div data-role="content">

        <!-- this causes the entire current page to load as the dialog -->
        <a href="#modal" data-rel="dialog">Open Dialog<a> 

        <div id="modal" style="display: none">
            Hello World
        </div>

    </div>
</div>
  

Типичный диалог требует, чтобы href связывающего объекта был ссылкой на отдельную «страницу» или ту, которая находится рядом с текущей страницей:

 <div data-role="page">
    <div data-role="content">
        <a href="#modal" data-rel="dialog">Open Dialog<a>
    </div>
</div>
<div data-role="page" id="modal">
    <div data-role="content">
        Hello World
    </div>
</div>
  

Однако моя структура шаблона запрещает мне отделять ссылку от модального содержимого. Если возможно, я хотел бы сохранить модульность в одном подключаемом элементе управления. Создание совершенно новой внешней страницы для модального содержимого было бы громоздким с использованием моей текущей платформы CMS (Sitecore).

Ответ №1:

Не удалось найти надежное кроссплатформенное готовое решение.
Но Jquery Mobile 1.2 имеет роль «всплывающего окна», поэтому любой div может легко отображаться как всплывающее окно. http://jquerymobile.com/test/docs/pages/popup/index.html

Ответ №2:

jQueryMobile — SimpleDialog2 позволяет встроенные диалоги http://dev.jtsage.com/jQM-SimpleDialog/demos2 /

 <a href="#" id="opendialog" data-role="button">Open Dialog</a>


  <div id="inlinecontent" style="display:none"   data-options='{"mode":"blank","headerText":"Yo","headerClose":true,"blankContent":true}'>

<ul data-role='listview'><li>Some</li><li>List</li><li>Items</li></ul>
<a rel='close' data-role='button' href='#'>Close</a>
 </div>

$(document).delegate('#opendialog', 'click', function() {
// NOTE: The selector is the hidden DIV element.
$('#inlinecontent').simpledialog2();
})