假设我在 JQM 面板中有一个相当复杂的菜单,我需要它可以从应用程序中的每个页面访问。实现它的一种方法是简单地将面板代码复制并粘贴到每个子页面。
这行得通。但是,它只适用于具有简单面板的小型应用程序。复制大量 Panel 代码并应用到所有其他页面可能会非常麻烦,并且当稍后将更多页面加载到 DOM 时肯定会遇到性能问题。
所以我试着用另一种方式来做——自己操纵面板。我点击了该pagecreate
事件并将面板添加到加载的页面中。这样我就可以保持我的 DOM 干净并且始终处理一个面板。
但这没有用。pageContainer.trigger('refresh')
在我强制将其从一页完全移动到另一页并调用or后,面板似乎未能重新初始化pageContainer.trigger('create')
。
所以我最终这样做了 - 将 Panel html 保留在 js 变量中,然后将 panel html 预先添加到加载的页面中,而不删除前一页上的面板。这似乎有效。
虽然这种方法并不能真正解决 DOM 中只有一个 Panel 的问题,但至少我不必将它复制粘贴到每个页面中。
现在它可以工作了,但我对它并不满意。我在这里发布这个问题,希望有人能解释为什么方法 2 不起作用,这真的会让我很开心。
** 我的应用正在使用多页模板
干杯