0

首先让我说我是一个 jquery n00b。:(

我的网站上有这个问题,到目前为止还没有解决方案。我有一个 Joomla 网站、一个 Yootheme 模板和一个 Fatica Locator 组件。

我买了两个,但似乎有一个 jquery 冲突(这是两个支持团队所说的),但我不知道......所以我去寻找一个 jquery 论坛,有比我自己更了解的人.

这是我正在谈论的页面:http ://www.ellenvandrunen.com/santos/dealers

第一次它可能会完美加载,但第二次定位器地图保持空白。

所以我咨询了 Fatica Locator,这是他们的回复:

这看起来像是某种 jQuery 冲突/计时问题。出于某种原因,页面加载触发器在缓存后没有触发

建立,所以它第一次工作,但是当页面加载更快时,不会调用初始化,或者在页面元素存在之前调用。

称为“Widgetkit”的东西会抛出错误,可能会停止页面执行,这意味着我们的启动代码可能永远不会在该插件或库错误出现后运行。

所以在那之后我咨询了 Yootheme(Widgetkit 所有者),这是他们的回应:

该扩展正在加载 jQuery 库的另一个实例,导致冲突,

http://www.ellenvandrunen.com/santos/components/com_locator/assets/jquery.min.js 看看它的设置。它是否可以选择禁用该加载?

在定位器组件中,我找到了一个选项来关闭“将 jQuery 用于前端 Ajax 是/否”我切换到否,但没有改进......

此刻它保持安静,我真的很想解决这个问题。

我不知道您需要哪些信息来帮助解决此问题,所以请告诉我。我希望有一个解决方案...

在定位器中我发现了这个:

$doc->addScript( JURI::base() . 'components/com_locator/assets/jquery.min.js' );
         $doc->addScript(  JURI::base() . 'components/com_locator/assets/jquery.noconflict.js' );

也许这可以帮助...

系统检查会提供以下信息:

找到多个 jQuery 库。请确保它们不会相互冲突。

/components/com_comprofiler/js/jquery-1.5.2/jquery-1.5.2.js
/components/com_comprofiler/js/jquery-1.5.2/jquery-1.5.2.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.ajaxfileupload.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.ajaxfileupload.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.autogrow.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.autogrow.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.cluetip.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.cluetip.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.colorinput.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.colorinput.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.excanvas.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.excanvas.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.flot.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.flot.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.flydom.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.flydom.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.form.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.form.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.jeditable.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.jeditable.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.jmap.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.jmap.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.maskedinput.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.maskedinput.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.metadata.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.metadata.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.rating.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.rating.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.slimbox2.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.slimbox2.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.ui-all.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.ui-all.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.validate.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.validate.min.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.wysiwyg.js
/components/com_comprofiler/js/jquery-1.5.2/jquery.wysiwyg.min.js
/components/com_jce/editor/libraries/jquery/js/jquery-1.9.0.min.js
/components/com_jce/editor/libraries/jquery/js/jquery-ui-1.10.0.custom.min.js
/components/com_jce/editor/libraries/jquery/js/jquery.ui.touch-punch.min.js
/components/com_locator/assets/jquery.min.js
/components/com_locator/assets/jquery.noconflict.js

编辑:

感谢 Lodder 的努力:

我在 view.html.php 中更改了它,我相信在其中调用了 jquery。

/* $doc->addScript( JURI::base() . 'components/com_locator/assets/jquery.min.js' ); */
         /* $doc->addScript(  JURI::base() . 'components/com_locator/assets/jquery.noconflict.js' );*/

         if(!JFactory::getApplication()->get('jquery')){
     JFactory::getApplication()->set('jquery',true);
     $doc->addScript( JURI::root() . 'components/com_locator/assets/jquery.min.js' );
}

但我不认为它有效......这太让我头疼了!我这里有点绝望了……

4

1 回答 1

0

这可能是由于正在导入 2 个 jQuery 库。

在他们正在导入 jQuery 的 Fatica Locator 组件中,将其替换为以下代码:

if(!JFactory::getApplication()->get('jquery')){
     JFactory::getApplication()->set('jquery',true);
     $doc->addScript( JURI::root() . 'components/com_locator/assets/jquery.min.js' );
}

这基本上检查是否已经导入了 jQuery。如果没有,它会导入它。

希望这可以帮助

附带说明一下,即使 Yootheme Warp 脚本正在检测所有这些 jquery 文件,但这并不总是很重要,因为所有脚本所做的只是检测其中包含jquery名称的文件,例如jquery.rating.min.js

于 2013-06-19T15:10:53.347 回答