【问题标题】:jQuery-UI's .dialog with jQuery Mobile?jQuery-UI 的 .dialog 与 jQuery Mobile?
【发布时间】:2026-02-12 19:45:02
【问题描述】:

我目前正在改造一个大型的现有 web 应用程序,该应用程序广泛使用 jQuery UI,以便在移动设备上可接受地工作。我一直希望能够使用 jQuery Mobile 库来做到这一点,因为它解决了让表单元素在触摸屏设备上表现良好的问题,而且一切似乎都运行良好——除了jQuery UI 对话框,不会以任何方式响应,也不会产生任何控制台错误。

我猜这是因为 jQuery Mobile 还有一个 .dialog 方法,它在功能上与创建对话框的 jQuery UI 风格不兼容。

如果没有 jQuery Mobile,jQuery UI 对话框在我测试过的每台移动设备上都运行良好,但是,当然,这让我有大量工作需要为所有按钮和输入自定义移动样式全站范围。应用程序中还有超过 100 个 jQuery UI 对话框小部件实例,因此手动重写所有这些以使用 jQuery Mobile 方法也不是一个好的解决方案。

理想情况下,我希望能够继续使用 jQuery UI 的对话框小部件而不是 jQuery Mobile 的,但保持 jQuery Mobile 的其余功能不变。我一直在寻找很长一段时间,但还没有找到任何可以解决这个问题的资源,所以我想知道这里是否有人知道解决这个冲突的方法。

网站上的 jQuery UI 版本是 1.11.1,jQuery Mobile 版本是 1.4.3 - 该网站使用 Google 托管库,最好保持这种状态,因此编辑库本身将是最后- 放弃努力。

编辑:为了验证我的假设,我现在测试了一个使用 the download builder 构建的自定义 jQuery Mobile 版本,它删除了对话框小部件,并且 jQuery UI 可以完美地使用它。但是,如果我能以某种方式使用 Google 托管库使其工作,那将是更好的选择。

【问题讨论】:

    标签: jquery jquery-ui jquery-mobile jquery-ui-dialog jquery-mobile-dialog


    【解决方案1】:

    从 jQuery Mobile 1.4.0 开始不推荐使用对话框,并在 1.5.0 中删除。 页面的 page.dialog 扩展提供的对话框选项 小部件允许您将页面样式设置为对话框,但是,特殊的 导航处理将被删除。你也可以考虑 使用弹出窗口小部件实现对话框。

    也许您想根据需要使用弹出窗口而不是对话框 http://api.jquerymobile.com/popup/

    【讨论】:

    • jQuery Mobile 的对话框小部件已弃用,而 jQuery UI 则不是。这就是为什么我需要 jQuery UI 的对话框小部件的功能不被 jQuery Mobile 阻止。