4

我正在尝试使用 jQuery Mobile 制作网站。它由 HTML 文件中的许多页面组成,其中一些只有一页,而另一些则有多个页面(使用它们的多页功能)。

该站点将有一些通知弹出窗口,并且它们在所有页面上看起来都相同。我正在使用他们似乎为此目的设计的新弹出功能来实现弹出窗口。我可以通过在每个页面上放置弹出窗口的副本来轻松实现这一点,但这会产生大量可能难以维护的冗余代码。我可能可以让我的服务器在适当的地方为我插入代码,但这看起来既复杂又低效。

我尝试将弹出窗口放在页面之外,但它们不能可靠地工作(您可以在此处查看示例)。

我尝试使用模板系统(内置于 underscore.js 中的系统)动态生成它们,但这看起来可能会导致问题——我必须在每个弹出窗口关闭时销毁它以避免内存泄漏。

我不确定这是否是弹出窗口小部件中的错误,这似乎是因为弹出窗口小部件仅在 jQuery Mobile 的 alpha 版本中。

这里有没有人知道如何在几个 html 文件中创建一个包含许多页面的网站,以及所有页面共有的一些弹出窗口?

4

3 回答 3

3

我在 jQuery Mobile github 上看到了您的请求,并发布了我在我的 Web 应用程序上使用的解决方案。查看http://ghita.org/jquery/dynamic-mobile-popup这是一个小插件,可以让您拥有动态弹出窗口,它可以让您专注于弹出窗口的内容事件

包含插件(有1.8kb),然后调用:

$.dynamicPopup({content: 'This is the dynamic content of the popup.'});

content - 可以是字符串或 jQuery html 对象。

查看https://github.com/serbanghita/jQM-dynamic-popup以获取完整的选项列表,其中一些选项继承自 jQuery 的移动 popup() 函数。

这个问题对我来说是一个阻碍,因为我有动态网页,我不关心手动注入 HTML 内容以使 popup() 处于活动状态。希望对您有所帮助。

于 2012-08-23T13:15:57.187 回答
0

参加聚会可能很晚,但可能对遇到的人有用。

如果您使用最新的 JQM(我使用的是 JQM 1.4.2),现在您可以使用 Global Popups。您只需要在所有数据角色页面之外的 body div 下直接声明弹出窗口。

最好通过这个JQM 文档

于 2014-05-14T13:48:32.493 回答
0

您必须尝试像 jqm 加载器一样设置它,它也位于 div.page 之外(否则您将在 dom 内的每个页面都有一个加载器),所以我认为正确的方法是不包括弹出窗口在一个页面内,但在 div.page 之外。

因为 jqm 只会拉入 div.pages 而之前/之后什么都没有,你应该能够在每个页面上包含一个通用的弹出框,并且只能在 dom 中使用一次。不确定这在 div.page 之外是否有效。

于 2012-08-21T23:23:24.103 回答