некоторые модули joomla, не работающие с разными версиями jquery, конфликтуют в моем пользовательском шаблоне, как это решить?

я разработал собственный шаблон joomla 3 с инфраструктурой zurb Foundation, я думаю, что из-за конфликтов jquery некоторые модули работают с последней версией, и даже галерея лайтбоксов не работает вообще, даже с кодом jquery noconflict.

это мои пользовательские данные index.php шаблона

?php /**  * @copyright  Copyright (C) 2013 Enter Infolabs - All Rights Reserved. **/
defined( '_JEXEC' ) or die( 'Restricted access' ); 
define( 'YOURBASEPATH', dirname(__FILE__) );

JHtml::_('behavior.framework', true);
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$doc->addScript('templates/' .$this->template. '/js/vendor/jquery.js');

$rightcolgrid  = "3";
?>
<!doctype html>
<html class="no-js" xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<jdoc:include type="head" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<link rel="icon" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/favicon.ico" type="image/png">
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css"/>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/foundation.css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/style.css" type="text/css"/>
<link href='http://fonts.googleapis.com/css?family=Bubbler+One|Maven+Pro' 

rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/foundation-icons.css" />  
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
baseurl ?>/templates/template ?>/js/jquery-noconflict.js">
    <!--

      [if IE]><link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ie.css" media="screen, projection" /><![endif]-->  

    </head>

    <body>

-------------------
----------------
-----------------

<script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/foundation/foundation.topbar.js"></script>


    <script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/foundation.min.js"></script>    

<script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/vendor/jquery.js"></script>
baseurl ?>/templates/template ?>/js/jquery-noconflict.js">
    <script>
      $(document).foundation();
    </script>
</body>
</html>

Может ли кто-нибудь решить проблему, пожалуйста.


person user3073170    schedule 18.03.2014    source источник
comment
В вашем коде вы импортируете 2 файла jQuery. Вы должны импортировать только 1. Взгляните на ответ, который я написал некоторое время назад о том, как импортировать jQuery с Joomla: stackoverflow.com/questions/12471067/   -  person Lodder    schedule 18.03.2014


Ответы (1)


Помимо того, что вы загружаете jQuery только один раз (как указал @Lodder), у вас есть вызов noConflict(), который отменит назначение сокращения $. Это сделает

$(document).foundation()

потерпеть неудачу. Вы должны заменить его на

jQuery(document).foundation()

Вы смотрели порт основания siegeengine для Joomla? Это может избавить вас от головной боли; хотя у него та же проблема с noConflict и вызовом Foundation с сокращением $, это может помочь.

Кроме того, почему бы не загрузить jQuery из CDN?

person Riccardo Zorn    schedule 19.03.2014