将jQuery导入Joomla

时间:2012-09-18 05:47:12

标签: jquery joomla joomla2.5 joomla3.0 joomla3.1

我已经成为Joomla开发人员近一年了。我每天都在努力将jQuery导入joomla。 Joomla带有mootools。当我导入jQuery时它崩溃了。此外,当我创建模块时,我必须将jQuery导入每个模块,这使得站点变慢。有时它会使整个网站崩溃。我希望mootools和jquery能够携手合作,所以我可以使用它们而不会发生任何崩溃。

将jQuery导入Joomla的最佳方法是什么?是否有特定的位置需要导入以在站点范围内使用一个jquery库(后端和前端)?

由于

4 个答案:

答案 0 :(得分:18)

这是我们用来确保只导入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 文件,那么您还可以开发一个小的Plugin

<强>更新

正如鲍比所说。很多扩展包括他们自己的jQuery副本,其中很多都不使用这种方法,从而导致冲突。我所知道的是,任何优秀的开发人员都应该知道多个jQuery库会导致冲突,并且应该使用此代码。

答案 1 :(得分:2)

这是一个很棒的插件。

http://extensions.joomla.org/extensions/core-enhancements/performance/jquery-scripts/18327

  

此插件旨在帮助清理和解决前端和后端   在Mootools中使用jQuery实例时出现问题   库。

     

什么是不可能的?

     
      
  • 从谷歌CDN(有或没有协议)调用jQuery和jQuery UI库 - 但你也可以在本地进行,
  •   
  • 在MooTools要求完美兼容性之后放置jQuery库,
  •   
  • 在jQuery库调用
  • 旁边添加了noConflict()代码   
  • 删除额外的jQuery和jQuery UI库,包括由其他模块或插件添加的noConflict()调用,
  •   
  • 允许您选择jQuery UI基本样式或自定义主题。
  •   
     

你能做什么

     
      
  • 暂时在前端暂停MooTools库,
  •   
  • 启用或停用网站特定部分的插件,从模板到单页,
  •   
  • 使用报告获取有关插件引擎已完成内容的反馈,
  •   
  • 添加或删除脚本和样式表,
  •   
  • 剥离对页面进行的修改留下的空白行
  •   
  • 阻止某些库被删除,
  •   
  • 默认情况下修改引擎的工作方式(不添加或删除noConflict()代码...),
  •   

答案 2 :(得分:0)

使用Joomla! 3.0 - 如果你花了那么长时间的努力,你应该帮助解决这个问题所需的Joomla! JavaScript Working Group

答案 3 :(得分:0)

在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