2

更新:这个问题指的是 Zend Framework 的旧版本。要了解如何将 jQuery 与 Zend Framework 1.9.4 (1.8+) 应用程序集成,请参阅此问题


我想我了解基本概念,但我一定是在某个地方出错了。我正在尝试将 jQuery、jQuery UI 和 jQuery 主题集成到我的 Zend Framework 应用程序中。

在我的引导程序中,我正在注册 jQuery 视图助手:

$view->addHelperPath(self::$root . '/library/ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');

在我的表单中,我有一个日期选择器元素:

$date = new ZendX_JQuery_Form_Element_DatePicker('date');

在我的布局中,我调用了 jQuery 视图助手:

<head>
    <?= $this->jQuery() ?>
</head>

完成此操作后,我实际上可以使用日期选择器。唯一的问题是日历完全搞砸了。它根本无法正确显示。

据我了解,javascript 文件是自动包含的(并由 Google 托管)。因此,为了使用不同的主题(来自ThemeRoller),您必须在自己的服务器上托管 js 和 css 文件。为了让我的日期选择器显示不同的主题,我应该经历什么过程?

更新:我通过这样做让它工作。但我不确定这是否是最有效的方法。

<head>
<? //I couldn't get this way to work
   //$this->jQuery()->addStylesheet('http://ajax.googleapis.com/ajax/libs/jqueryui/1.7/themes/smoothness/jquery-ui.css');
   //But this way works
   $this->jQuery()->addStylesheet('/js/jquery/themes/ui-lightness/jquery-ui-1.7.1.custom.css')
              ->setLocalPath('/js/jquery/js/jquery-1.3.2.min.js')
              ->setUiLocalPath('/js/jquery/js/jquery-ui-1.7.1.custom.min.js') ?>
    <?= $this->jQuery() ?>
</head>
4

3 回答 3

3

使用ZendX_JQuery_View_Helper_JQuery视图助手(当然您也可以使用视图助手注册样式表Zend_View_Helper_HeadStyle,但使用 jQuery 视图助手将确保仅在启用 jQuery 时包含样式表)您可以注册从 Google CDN 提供的样式表:

$view->jQuery()->addStylesheet('http://ajax.googleapis.com/ajax/libs/jqueryui/1.7/themes/smoothness/jquery-ui.css');

根据jQuery UI ThemeRoller库, smoothness是主题名称。更多主题网址请参阅jQuery UI 1.7.1 发布公告博客文章

顺便说一句,我建议使用 jQuery 启用视图ZendX_JQuery::enableView($view)。我个人认为这是更明显的方法。

于 2009-04-15T08:21:43.130 回答
0

如果您使用的是 Google CDN,您只需将 .css 文件托管在您自己的服务器上。我不知道 ZendX_Jquery 是否使用它。这应该就是让它工作的全部。

于 2009-04-14T13:11:22.693 回答
0

我认为您需要下载 jquery ui css 文件。从 zip 中提取 css 文件并在您的 zend 应用程序中本地提供它们。我将文件添加到 '[Your_zend_project_root]\public\js\'。在您的 layout.phtml 文件中,使用“addStylesheet()”方法将路径添加到本地 css 文件。您需要更改所选主题名称的特定路径。

<?php echo $this->jQuery()
    ->setUiVersion('1.7.2')
    ->addStylesheet('/js/jquery-ui-1.7.2/development-bundle/themes/ui-lightness/jquery-ui-1.7.2.custom.css');?>
于 2009-07-19T16:05:56.650 回答