jQuery-工作/不工作-Joomla,Google库

时间:2019-01-02 18:52:53

标签: javascript jquery joomla

我有一个奇怪的情况,无法弄清楚为什么我的JavaScript无法正常工作。

这是一个普遍的问题-如果我从此链接加载jquery 2.2.0: “ https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js

一切正常

但是Joomla正在加载它自己的1.2版,但我的模板已将其替换为当前的3.3.1版

  • 这时一切正常,但是我已经加载了2个jQuery(一个来自joomla,另一个来自google lib)

  • 如果我删除google 2.2版本,则JS无法正常运行(使用html中的标准脚本加载)

  • 如果我用Google的2.2.0版本替换了模板中的jquery,它仍然无法正常工作(正在加载低谷joomla头)

我收到此错误:TypeError:$ .tablesorter未定义

对我来说没有意义

3 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但是我在WordPress网站上遇到了类似的问题,并使用jQuery Migrate解决了:https://github.com/jquery/jquery-migrate

用法 在您的网页中,将此插件加载到jQuery的脚本标签之后,例如:

<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<script src="https://code.jquery.com/jquery-migrate-3.0.1.js"></script>

答案 1 :(得分:0)

可惜,还有其他几种方法可以使它工作。

那么在同一页面上,您是否完全删除了Joomla 1.2 jQuery?您提到您将其替换为3.3.1

这也是需要jQuery 2.2的特定页面吗?还是整个网站都希望使用jQuery 2.2?

如果您只需要在一页上使用它,则可以在页眉中执行一些php操作,以根据页面URL切换使用的jQuery,这样,它只会在每个页面上加载所需的jQuery,而不会加载2个jQuery。不是最理想的方法,但应该可以。

> class A {int foo; string bar;};
> A a = A();
> indices(a);
(1) Result: ({ /* 2 elements */
                "foo",
                "bar"
            })
> indices(A);
(2) Result: ({ })

如果您需要或希望在最新的jQuery上使用它,我将删除所有jQuery和jQuery Migrate,然后将两者的最新版本放入其中,然后尝试解决剩余的错误

您可以分享更多错误吗?

例如,仅jQuery 1出现错误,然后仅2出现错误,依此类推?

答案 2 :(得分:0)

我设法通过替换所有

解决了该问题
$(function () {...

使用

jQuery(function ($) { ..

我正在从自己的服务器加载最新的jQuery

我在另一个网站上的设置完全相同,没有任何问题