Joomla模块jQuery冲突



我有两个Joomla模块的jQuery冲突。我在每个模块中都找到了下面的代码。谁能帮我解决这个矛盾?

第一个模块代码:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
//...
<script type="text/javascript">
  jQuery(document).ready(function () {
    jQuery('#jeYW<?php echo $module->id ?>').weatherfeed([<?php echo "'".$cityCode[0]."'"; for ($i=1; $i<count($cityCode); $i++){echo ",'".$cityCode[$i]."'";}?>],{
      unit: '<?php echo $unit ?>',
      image: <?php echo $image ?>,
      country: <?php echo $country ?>,
      highlow: <?php echo $highlow ?>,
      wind: <?php echo $wind ?>,
      humidity: <?php echo $humidity ?>,
      visibility: <?php echo $visibility ?>,
      sunrise: <?php echo $sunrise ?>,
      sunset: <?php echo $sunset ?>,
      forecast: <?php echo $forecast ?>,
      link: <?php echo $forecastlink ?>,
      showerror: true,
      linktarget: '_blank',
      woeid: <?php echo $woeid ?>
    });
  });
</script>

第二个模块的代码:

$document->addScript(JURI::base(true).'/modules/mod_muscol_featured_albums/tmpl/jcarousel/lib/jquery-1.2.3.pack.js');
$document->addScript(JURI::base(true).'/modules/mod_muscol_featured_albums/tmpl/jcarousel/lib/jquery.jcarousel.pack.js');
$document->addStyleSheet(JURI::base(true).'/modules/mod_muscol_featured_albums/tmpl/jcarousel/lib/jquery.jcarousel.css');
//...
$document->addScriptDeclaration("
  console.dir(jQuery.fn.init.prototype);
  jQuery(document).ready(function() {
    jQuery('#random_album_".$random_id."').jcarousel({
      // Configuration goes here
      scroll: ".$scroll."
      ".$auto."
      ".$animation."
      ".$circular."
      ".$vertical."
    });
});
");

你可以试试jQuery Easy。阅读评论,你就会明白这个组件有多棒。我已经用了很长时间了。

特点:

    jQuery和jQuery UI库可以在Joomla中托管!或通过HTTP或HTTPS从Google API库调用(设置显式版本)用于正确缓存),
  • 不需要在前端或后端编码(不需要在模板中添加代码或与Joomla混淆!核心),
  • 将jQuery调用放在MooTools调用之后,以实现完美的兼容性,
  • 添加noConflict代码,
  • 将'jQuery'变量设置为'true',
  • 剥离所有其他jQuery, jQuery UI库调用,包括noConflict调用添加其他模块或插件,
  • 选择jQuery UI基本样式或自定义主题。
  • 新:可能的专家调整
  • 新:插件可以在您的网站的特定部分启用或禁用
  • v1.2.0新功能:MooTools库可以暂时在前端禁用
  • v1.3.0以来的新功能:报告和更多选项,以帮助解决更高级的情况
  • 新:Joomla !3.0特定版本发布

确保导入的jQuery只有一个副本。要做到这一点,请使用以下命令:

if(!JFactory::getApplication()->get('jquery')){
     JFactory::getApplication()->set('jquery',true);
     $document = JFactory::getDocument();
     $document->addScript("http://code.jquery.com/jquery-latest.pack.js");
}
更新:

尝试将此添加到noConflict

if语句之上
$document->addCustomTag( '<script type="text/javascript">jQuery.noConflict();</script>' );

希望能有所帮助

jquery easy应该可以处理这个问题,或者你可以将它添加到模板的头部index.php:

JHtml::_('jquery.framework'); 

将加载jquery 1.8.1(或joomla稳定的1.8版本)

在我的情况下,在使用这两个,jquery容易只是禁用mootools和添加jquery UI为我,有一些冲突,这个设置似乎解决了它…

最新更新