将jQuery导入Joomla
我已经成为Joomla开发人员近一年了。 我每天都在努力将jQuery导入joomla。 Joomla带有mootools。 当我导入jQuery时它崩溃了。 此外,当我创建模块时,我必须将jQuery导入到每个模块中,这会使站点变慢。 有时它会使整个网站崩溃。 我希望mootools和jquery能够携手合作,所以我可以使用它们而不会发生任何崩溃。
将jQuery导入Joomla的最佳方法是什么? 是否有一个特定的地方应该进行导入以在站点范围内使用一个jquery库( 后端和前端 )?
谢谢
这是我们用来确保只导入1个jQuery副本的代码。 它只是检查jQuery是否已经被导入,如果没有,那么我们导入它:)
Joomla 2.5
get('jquery')) { $app->set('jquery', true); JFactory::getDocument()->addScript(JUri::root() . 'templates/template_name/js/jquery.js'); } ?>
Joomla 3.x(无冲突模式):
JHtml::_('jquery.framework');
Joomla 3.x(普通模式):
JHtml::_('jquery.framework', false);
您需要将此代码插入模板的index.php中,最好是在顶部附近,以便记住它的位置。 如果您不希望覆盖模板的index.php文件,那么您也可以开发一个小插件
更新:
正如鲍比所说。 很多扩展包括他们自己的jQuery副本,其中很多都没有使用这种方法,从而导致冲突。 我所知道的是,任何优秀的开发人员都应该知道多个jQuery库会导致冲突,并且应该使用此代码。
这是一个很棒的插件。
http://extensions.joomla.org/extensions/core-enhancements/performance/jquery-scripts/18327
当使用jQuery实例和Mootools库时,此插件旨在帮助清理和解决前端和后端问题。
什么是开箱即用
- 从谷歌CDN(有或没有协议)调用jQuery和jQuery UI库 – 但你也可以在本地进行,
- 在MooTools要求完美兼容性之后放置jQuery库,
- 在jQuery库调用旁边添加noConflict()代码,
- 删除额外的jQuery和jQuery UI库,包括由其他模块或插件添加的noConflict()调用,
- 让您选择jQuery UI基本样式或自定义主题。
什么你可以蠢蠢欲动
- 暂时在前端禁用MooTools库,
- 在网站的特定部分启用或禁用插件,从模板到单页,
- 使用报告获取有关插件引擎已完成内容的反馈,
- 添加或删除脚本和样式表,
- 剥离对页面所做的修改留下的空白行,
- 防止一些图书馆被剥离,
- 默认情况下修改引擎的工作方式(不要添加或删除noConflict()代码…),
使用Joomla! 3.0 – 如果你花了那么长时间尝试,你应该帮助Joomla! JavaScript工作组 ,旨在解决这个问题。
在Joomla 3.x中JApplication不再从JObject扩展,这意味着当你想在你的扩展中为Joomla 2.5和Joomla 3.x使用相同的代码时,你必须写if条件就像
if (!version_compare(JVERSION, '3', 'ge') && !JFactory::getApplication()->get('jquery', false)) {
否则会崩溃! 可以在这里找到一个例子https://github.com/Digital-Peak/DPExtensions/blob/master/mod_dpslider/tmpl/default.php#L13