我一直是一个Joomla开发人员几乎是一年了。 我一直在努力导入的jQuery到日常的Joomla。 的Joomla自带的mootools。 当我导入jQuery的崩溃。 此外,当我创建模块,我不得不进口的jQuery成,这使得现场慢的每个模块。 有时,它使整个网站崩溃。 我想这两个mootools的和jQuery到携手合作,所以我可以没有任何崩溃同时使用。
什么是jQuery的导入到的Joomla的最佳方式? 是否有一个地方的进口应该怎样做才能使用一个jQuery库站点范围内( 包括后端和前端 )一个特定的地方?
谢谢
这是我们用什么来保证只有1 jQuery的副本导入代码。 它只是检查是否已经被导入jQuery和如果没有,那么我们导入它:)
的Joomla 2.5
<?php
$app = JFactory::getApplication();
if (!$app->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的图书馆解决前端和后端的问题。
WHAT DOES IT OUT-OF-THE BOX
- 要求从谷歌CDN的jQuery和jQuery UI库(有或无协议) - 但你可以做到这一点本地也是如此,
- 地方jQuery的库MooTools的要求完美兼容后,
- 增加了noConflict()的代码旁边的jQuery库调用,
- 剔除了额外的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 (!version_compare(JVERSION, '3', 'ge') && !JFactory::getApplication()->get('jquery', false)) {
否则,它会崩溃! 一个例子可以在这里找到https://github.com/Digital-Peak/DPExtensions/blob/master/mod_dpslider/tmpl/default.php#L13