Javascript 如何在jQuery Mobile中显示对话框

Javascript 如何在jQuery Mobile中显示对话框,javascript,jquery,dialog,Javascript,Jquery,Dialog,我在jQueryMobile中有一个工具栏,由一堆链接组成,它们在我的javascript应用程序顶部加载“弹出”模式对话框 像这样: 信息 其中id=“about”的div有一个data role=“page”。我想从代码中打开相同的对话框,可能是作为按钮处理程序的一部分,但我找不到任何方法来实现这一点 此代码不起作用。它只在我当前页面的顶部透明地显示“关于”页面的元素(没有样式)。我该怎么做 $("#buttAbout").click(function () { $('#about'

我在jQueryMobile中有一个工具栏,由一堆链接组成,它们在我的javascript应用程序顶部加载“弹出”模式对话框

像这样:
  • 信息
  • 其中id=“about”的div有一个data role=“page”。我想从代码中打开相同的对话框,可能是作为按钮处理程序的一部分,但我找不到任何方法来实现这一点

    此代码不起作用。它只在我当前页面的顶部透明地显示“关于”页面的元素(没有样式)。我该怎么做

    $("#buttAbout").click(function () {
        $('#about').show();
        return false;
    });
    

    看起来jQueryMobile的对话框与jQueryUI完全不同。这应该满足您的要求:

    $.mobile.changePage(“#about”,“pop”,false,true)


    changePage的文档是。基本上,第一个参数是查找所需页面的字符串(可以是元素id、jQuery对象或页面URL),第二个参数是页面转换,第三个参数是转换的方向(false表示向前,true表示向后),最后一个参数是转换后是否要更新页面URL。我认为您还需要确保对话框的div上的
    data role
    属性正确设置为
    dialog
    ,以确保正确的历史记录/样式行为。

    尝试此操作时,我得到javascript控制台消息:在初始化之前,Uncaught不能调用dialog上的方法;试图调用方法“open”。是否先初始化了对话框?在标准jQuery下,您需要使用以下命令初始化对话框:
    $(“#关于”).dialog()
    或以下命令:
    $(“#关于”).dialog({autoOpen:false})
    ,然后才能调用open。(当您第一次初始化对话框时,
    autoOpen:false
    版本告诉jQuery不要打开它-这可能是您想要的行为)。我将此代码放在
    $(function(){….})
    块中,以便在页面加载时运行。一旦您这样做了,其他地方的代码应该能够随时调用open和close。如果这没用,今晚我将玩一玩jquerymobile:)由于某些原因,这不适用于jquerymobile。我的代码示例对于这个注释来说太大了,但是如果我包含querymobile include,它就不起作用了。包含jquery-ui.js后,它就可以工作了。我想我已经找到了一个解决方案——我已经编辑了上面的答案。希望有帮助!Tim,changepage确实有效,但是,我对话框中的按钮不会触发按钮回调,对话框看起来有点不同。当我通过