【发布时间】:2013-02-28 13:39:08
【问题描述】:
在我的 asp.net mvc4 + jquerymobile 应用程序中,我有一个看起来像这样的“页面”:
+---------------------------------------+
|A |
| +----------------+----------------+ |
| |B |C | |
| | | +------------+ | |
| | | |D | | |
| | | +------------+ | |
| +----------------+----------------+ |
+---------------------------------------+
- A 几乎只是一个容器页面,它除了设置 B 和 C 的“子页面”(部分视图)之外什么都不做
- B 是一个 UserList 面板(div),它具有绑定的事件,这将导致面板 C 的 ajax 重新加载(部分视图)
- C 是一个 UserEdit 面板(div),包含一个带有其他信息的辅助面板。
- D 是一个 UserPermissions 面板 (div),包含用于通过 ajax 调用与 simplemembership 角色系统交互的复选框。
所有四个视图我都有这个脚本的某个版本,告诉我哪些事件在什么时候触发:
$(document).ready(function () {
console && console.log("portalUser (pvUserEdit) document ready!!");
});
$(document).on('pageinit', function () {
console && console.log("portalUser (pvUserEdit) pageInit!!");
});
当页面 A 首次加载时,页面 B 会同时加载,并且会同时触发 pageinit 事件和 DOM 就绪事件。当从 B 中的列表中选择一个项目时,它会生成一个 ajax 加载来填充面板 C(这会导致面板 D 也加载)。这一次,只有 C&D 面板的 DOM 就绪事件触发,从不触发 pageinit 事件。
所以,这就是所有的背景信息。问题是:考虑到项目的 MVC4+JQM 方面,这是预期的行为吗?我应该期望 pageinit 在 partialView 加载时触发吗?还是我需要以不同于处理完整页面的方式处理部分视图?
【问题讨论】: