jQuery - 工作/不工作 - joomla,google 库

jQuery - working / not working - joomla, google libs

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

这是一般问题 - 如果我从这个 link 加载 jquery 2.2.0: “https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js

一切正常

然而 Joomla 正在加载它自己的版本 1.2,我已经用我的模板覆盖到当前的 3.3.1 版本

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

这对我来说毫无意义

不确定这是否有帮助,但我在我的 WordPress 网站上遇到了类似的问题并使用 jQuery 迁移解决了: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>

不好意思,还有几种方法可以让它发挥作用。

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

是否还有特定页面需要 jQuery 2.2?还是要将整个网站迁移到 jQuery 2.2?

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

<?php

//First detect the URL
$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

//Now do the if else to switch jQuery on desired page.

if (strpos($url, 'myPage.php') !== false) {
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
} else {
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
}

?>

如果您需要或想要它在最新的 jQuery 上,我会删除所有 jQuery 和 jQuery 迁移,然后将两者的最新版本放入,然后尝试解决错误剩余

你能分享更多错误吗?

例如只有 jQuery 1 的错误,然后只有 2 的错误等等?

我已经通过更换所有

设法解决了问题
$(function () {...

jQuery(function ($) { ..

我正在从我自己的服务器

加载最新的jQuery

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