我正在将 Joomla 3 用于一个项目,并且很高兴他们将 jQuery 添加到 CMS 中。添加 jQuery UI 支持的“认可”方式是添加JHtml::_('jquery.ui');
到文档的头部。
但是,它们仅支持最小的小部件集。例如,如果我想使用像“进度条”这样的非标准小部件,如何在不添加(冗余)jQuery 下载器附带的所需 jQuery 核心元素的情况下添加它?
谢谢
我最终通过下载 Joomla 中包含的旧版本的 jQuery UI(在撰写本文时为 1.8.23)而不是使用 jQuery UI 站点上的“构建器”解决了这个问题。jQuery 1.8.23 可以在这里找到:
https://code.google.com/p/jquery-ui/downloads/detail?name=jquery-ui-1.8.23.zip&can=2&q=
然后,使用JHtml::('jquery.ui')
调用加载 jQuery UI 的核心,并从上面的下载链接中包含您需要的实际小部件代码。这似乎运作良好,并且不会与其他组件/插件/模板冲突,这些组件/插件/模板也可能使用 Joomla API 加载 jQuery UI。
JHtml::_('jquery.framework'); // load jquery
JHtml::_('jquery.ui'); // load jquery ui from Joomla
$this->document->addScript(JURI::root(true).'/components/com_mycomponent/assets/jquery.ui.slider.min.js'); // load *same version* widget code from jQuery UI archive
JUX 库包括核心 jQuery UI 代码以及 Widget、Mouse、Position 和 Sortable(Joomla 3.0.2 的版本 1.8.23)。请查看 jQuery-UI 文档以获取有关其用法的更多详细信息。
为了加载核心调用:JHtml::_('jquery.ui');
这将从 media/jui 目录加载适当的 jquery-ui.core.js。启用 jQuery UI 会在 noConflict 模式下自动启用 jQuery(如果尚未启用)。
要添加 Sortable 库,请使用JHtml::_('jquery.ui', array('sortable'));
这将自动包含核心 jQuery UI 库和 jQuery 库。
为清楚起见,最好使用单个调用显式启用 core 和 sortableJHtml::_('jquery.ui', array('core', 'sortable'));
从 Joomla 3.0.2 开始,只有 jQuery UI Core 和 Sortable 被安装/可用。要使用其他 jQuery 插件,包括 jQuery UI 插件,您需要确保它们与您的应用程序一起安装并调用 JHtml::_('script') 以及适当的参数来加载它们。或者,您可以创建和安装自己的 JHtml 扩展并创建自己的 JHtml 调用 - 例如JHtml::_('mylibrary.myloader')
你可以从这个页面看到更多
您可以从下载页面http://jqueryui.com/download使用您需要额外的小部件构建您的自定义 jQuery UI 。之后,您可以通过删除 Joomla 核心附带的部分来修改下载的 javascript 文件。没有办法解决它,除非你根本不加载JHtml::_('jquery.ui');
。
当 Joomla 提供更高级的加载 jQuery UI 的解决方案时,我也会非常高兴。