web-dev-qa-db-fra.com

Création d'une boîte de dialogue JQuery Mobile

J'essaie de créer une boîte de dialogue avec Jquery mobile. J'ai essayé de me référer à la réponse acceptée dans ce SO Question mais cela n'a pas fonctionné pour moi.

Voici mon code:

 <div data-role="page" id="first"> 
    <!-- Code -->  
    <div id = "dialog" data-rel="dialog">
        <div id = "errorText"></div>
        <button id = "closeDialog">OK</button>
    </div>
</div>

Et voici le JS pour le faire (à l'intérieur d'une fonction):

//Nothing checked. Cannot continue. Add error message to div
$('#errorText').html("You must check the checkbox next to \"I Agree\" to continue");
//Open Dialog
$('#dialog').dialog();

Lorsque le code pour créer la boîte de dialogue est atteint, rien ne se produit. Suggestions?

14
Stanley Cup Phil

La boîte de dialogue doit être une page distincte distincte que vous pouvez charger via AJAX ou inclure dans votre HTML. Voici un exemple.

<!DOCTYPE html>
<html>
    <head>
    <title>Page Title</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
</head>
<body>
<div data-role="page">
    <div data-role="header">
        <h1>Sample</h1>
    </div>
    <div data-role="content">
        <p></p>
        <p><a href="dialog.html" data-rel="dialog" data-role="button">Is this a question?</a></p>
    </div>
</div>
<div data-role="page" data-url="dialog.html">
    <div data-role="header">
        <h1>Dialog</h1>
    </div>
    <div data-role="content">
        <p>Is this an answer?</p>
    </div>
</div>
</body>
</html>
14
Tim Niblett

Cela a fonctionné pour moi, de la section "Pages" locales et liées internes "" "" de - http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/pages/docs-pages. html

http://jsfiddle.net/homer2/ra7hv/

<div data-role="page" id="foo">
    <div data-role="header">
        <h1>
            Foo
        </h1>
    </div><!-- /header -->
    <div data-role="content">
        <p>
            I'm first in the source order so I'm shown as the page.
        </p>
        <p>
            View internal page called <a href="#bar" data-rel="dialog">bar</a>
        </p>
    </div><!-- /content -->
    <div data-role="footer">
        <h4>
            Page Footer
        </h4>
    </div><!-- /footer -->
</div><!-- /page -->

<!-- Start of second page -->
<div data-role="page" id="bar">
    <div data-role="header">
        <h1>
            Bar
        </h1>
    </div><!-- /header -->
    <div data-role="content">
        <p>
            I'm second in the source order so I'm not shown as the page initally.
        </p>
        <p>
            <a href="#foo">Back to foo</a>
        </p>
    </div><!-- /content -->
    <div data-role="footer">
        <h4>
            Page Footer
        </h4>
    </div><!-- /footer -->
</div><!-- /page -->
11
Homer

Juste ça,

<div data-role="popup" id="popupDialog" data-overlay-theme="a">
                Hello world
 </div>

 $('#popupDialog' ).popup('open');
2
omeralper

Vous pouvez utiliser

$('#errorText').html("You must check the checkbox next to \"I Agree\" to continue");
$.mobile.changePage('dialog', 'slide', false, false);

Plus d'informations sur http://jquerymobile.com/demos/1.0b1pre/#/demos/1.0b1pre/docs/pages/docs-navmodel.html

2
gsilvestrin

J'ai fait un dialogue générique qui s'ouvre de JavaScript. J'espère que cela t'aidera.

HTML code:

<div data-role="page" id="genericDialog">
    <div data-role="header" ><h3 id="genericDialogHeader"></h3></div>
    <div data-role="content" id="genericDialogContent"></div>
</div>

Et JavaScript code:

function openDialog (title,body) {
    //Setting values
    $("#genericDialogHeader").html(title);
    $("#genericDialogContent").html(body);
    //Showing the generic dialog
    $.mobile.changePage( "#genericDialog", { role: "dialog" } );
}
1
Leonardo Oliva