簡體   English   中英

JQuery Mobile 1.4以編程方式關閉對話框

[英]JQuery Mobile 1.4 Close dialog programmatically

由於JQM 1.4更改了一些小部件,為了使用“對話”小部件,有2個選項:

  1. data-role =“ page” data-dialog =“ true”
  2. data-rel =“ popup”

我使用的是第一種方法,因此當用戶單擊對話框的“確定”按鈕時,我會更新數據庫,如果一切正常,我想關閉對話框。

JQM文檔中所述,我已經嘗試使用$( ".selector" ).dialog( "close" )但是它引發了Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close' Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close' 一些示例代碼:

對話框HTML

<div id="manage-page" data-role="page" data-dialog="true" data-corners="false" data-close-btn="right" data-overlay-theme="b"> 
    <div data-role="header">
        <h1>Manage</h1> 
    </div>
    <div data-role="content">  
        <h3>Title</h3>
        <input type="text" id="title" value=""/>
        <a href="#" id="saveTitle" data-role="button">Save</a>  
    </div>
</div>

對話JS

$(document).on('click', '#saveTitle', function(){
    var title= $('#title').val();

    $.ajax({
        type: "POST",
        url: CUSTOM_URL,
        success: function(data) {
            if(data != -1)
                $('#manage-page').dialog('close'); 
            else
                // Some stuff
        },
        error: function() {
            console.log("ERROR saving title");
        }
    });
});

怎么了? 謝謝

更新

我已經解決了在打開按鈕中使用data-rel="back"並刪除$('#manage-page').dialog('close');

我重現了錯誤。 對話框代碼可以,但是您必須修復用於打開對話框的方式。 您必須添加選項:

$.mobile.changePage(domain() + '/private/manageDialog', {role:"dialog"});

或添加data-rel屬性:

<a href="#manage-page" data-rel="dialog">Open dialog</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM