我有一个奇怪的情况,无法弄清楚为什么我的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未定义
对我来说没有意义
答案 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
我在另一个网站上的设置完全相同,没有任何问题