【问题标题】:Joomla Jquery not working, why is that?Joomla Jquery 不工作,这是为什么呢?
【发布时间】:2012-03-03 09:13:47
【问题描述】:

我安装了 joomla 2.5 正版安装,但是 JQuery 不工作。我怎样才能让 JQuery 在 joomla 中工作?默认的 JQuery 库是否没有与 joomla 一起使用?

【问题讨论】:

  • 你怎么知道 JQuery 不工作?
  • 一旦在控制台运行 $('body') 它返回 null,这意味着 jquery 库不存在!不是吗?
  • @Gihan Dilusha - Joomla 默认使用 mootools,但我们可以在 joomla 中添加(使用)jquery。问题是您在哪里使用 jquery,我的意思是在模板或扩展中。另一个主要问题是多次 mootools 和 jquery 冲突。
  • @Happy Singh - 如果我将 jquery 放在模板中可以吗?
  • @GihanDilusha 是的,您可以将它放在模板中 - 但如果您在大多数文章中不需要它,它将被视为不好的做法。

标签: jquery joomla


【解决方案1】:

您可以在模板中添加这样的 jquery -

<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/YOUR_TEMPLATE_NAME/PATH_TO_JAVASCRIPT_FOLDER/YOUR_JQUERY.js"></script>
  • 您的模板 - 您的模板名称
  • JAVASCRIPT 文件夹的路径 - 如果存在任何文件夹,则为该文件夹的路径
  • 您的 JQUERY.js - 最后是您要包含的文件名。

【讨论】:

  • +1 很好的答案,但是在给出路径示例时,您应该始终推荐无空格的目录和文件名:/path/to_next/dir
【解决方案2】:

您可以使用 joomla 的 jQuery Easy 插件。这将在前端和/或后端静默启用 jQuery 和/或 jQuery UI。在这里获取它http://extensions.joomla.org/extensions/core-enhancements/scripts/18327

如果我没记错的话,这个插件会处理 mootools 的 noConflict 问题。

【讨论】:

    【解决方案3】:
    $document = &JFactory::getDocument();
    $componentDir = JURI::base();
    
    $document->addStyleSheet($componentDir.'/templates/movm/css/jquery.mobile-1.1.0.min.css' );
    $document->addStyleSheet($componentDir.'/templates/movm/css/comman.css');
    $document->addScript($componentDir.'/templates/movm/js/jquery.min.js' );
    $document->addScript($componentDir.'/templates/movm/js/jquery.mobile-1.1.0.min.js' );
    $document->addCustomTag( '<script type="text/javascript">jQuery.noConflict();</script>' );
    

    【讨论】:

      【解决方案4】:

      注意:默认情况下,jQuery 使用 $ 作为 jQuery 的快捷方式

      因为 Joomla 使用 Mootools,如果你还想使用 jQuery,你必须编写 JQuery 而不是 $。

      http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/

      【讨论】:

        【解决方案5】:

        取自http://docs.joomla.org/Adding_JavaScript的文档

        使用 Joomla API 包含 JavaScript 文件有“两种方法”。

        <?php
        $document = &JFactory::getDocument();
        $document->addScript('/media/system/js/sample.js');
        ?>
        

        <?php
        // Add the path parameter if the path is different than 'media/system/js/'
        JHTML::script('sample.js', 'templates/custom/js/');
        ?>
        

        强烈建议使用这些方法,因为它可以清楚地区分另一种脚本语言 (JavaScript) 与主要 PHP 代码,确保所有 JavaScript 都正确嵌入标签之间,并且在 JDocument::addScript 和 JHTML::script 的情况下确保一个 JavaScript 文件只包含一次(即没有 .js 文件重复)。

        【讨论】:

          猜你喜欢
          • 2015-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-13
          • 1970-01-01
          • 2014-08-20
          相关资源
          最近更新 更多