代码之家  ›  专栏  ›  技术社区  ›  Dave

将页面加载到jquery对话框中

  •  0
  • Dave  · 技术社区  · 15 年前

    我倾向于采用一种相当“模块化”的方法来构建应用程序,最近我开始使用jquery。我正在开发的应用程序将相当大,所以我试图在可能的情况下将各个部分分解为单独的文件/模块。其中一个例子是“用户设置”对话框。

    这个对话框有一个表单、几个选项卡和相当多的输入字段,因此我希望在一个单独的html文件中开发它(实际上是php,但在本例中可以将其视为html)。它本身就是一个完整的页面,包含了您所期望的所有标记,例如:

    <html><head></head><body></body></html>
    

    所以我现在可以开发,我想要的,独立于基础应用程序的对话框。这个对话框的头部也有自己的javascript(实际上有很多javascript),jquery$(document.ready(){}捕获等等。所有的工作都是完美的隔离。但是,当我试图加载带有页面的jquery模式对话框(在主应用程序页面内)时,正如人们所料,问题随之而来。

    下面是一个简单明了的例子:

    editUserDialog.load ("editUser.php", {id : $('#userList').val(), popup : "true"}, function     () {
      editUserDialog.dialog ("option", "title" , "Edit User");
      editUserDialog.dialog ('open');
    });
    

    (我将向页面传递一个“popup”标志,以便页面可以确定其上下文——即作为页面或在jquery对话框中)。

    问题1 :当我将代码从“head”移到“body”(在edituser.php页面中)时,它实际上在大部分情况下都有效。jquery似乎是在加载文件的主体而不是头部的上下文中调用$(document).ready()函数。这是个坏主意吗?

    问题2 :我构建这个应用程序的过程一开始就完全有缺陷吗?

    我搜索了整个网络,试图找到一个“最佳实践”类的文档来使用jquery/php构建相当大的应用程序,但没有取得很大的成功,所以也许有其他人意识到我错过了一些东西。

    谢谢你在我试图描述我遇到的问题时对我的态度,我希望我已经准确地描述了这个问题。

    1 回复  |  直到 15 年前
        1
  •  0
  •   RationalGeek    15 年前

    我曾在大型web应用程序上工作,这些应用程序大量使用了弹出在其他页面之上的对话框。一般来说,我会避免使用这种模式,而只需导航到一个单独的页面,然后在用户完成与“子页面”的交互后再导航回来。对话框会导致性能下降、ui设计/开发/使用中的复杂性以及可用屏幕不动产丢失等问题。在我看来,它们并没有提供很多优势。