javascript - 包含其他 javascript 文件时 Highcharts javascript 错误

标签 javascript jquery highcharts

我正在使用 SB admin 2 模板在 laravel 框架中重建我的网站。该模板包含一个名为 frontend.js 的文件,该文件用于菜单等。该文件可以在这里看到:https://github.com/start-laravel/sb-admin-laravel-5/blob/master/public/assets/scripts/frontend.js

在我的旧网站中,我使用了一些 Highcharts,我也想在新网站中使用它们。在旧站点中,我使用了这样的脚本:https://jsfiddle.net/do0gm917/

在标题中我有:

<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>

当我尝试在新网站中执行相同操作时,出现此错误:Uncaught TypeError: $(...).highcharts is not a function

我注意到,当我删除 frontend.js 时,highcharts 工作正常,因此问题不在于 highchart 代码本身,但显然这两个脚本不喜欢一起工作。

我的 Javascript 知识非常有限,而且由于 frontend.js 文件是 15324,我不知道如何调试这个问题。有什么想法吗?

最佳答案

事实 jQuery.fn.jquery 打印版本是一件好事,因为这意味着 jQuery 对象没有被其他库覆盖。

由于您使用的是 1.9.1 并且您正在使用 2.1.3,这意味着您有 2 个 jQuery 版本正在加载,并且 1.9.1 jQuery 对象(包含 highcharts 函数)被 2.1.3 对象覆盖,而 2.1.3 对象又被覆盖也删除了 highcharts 功能。您可以尝试阻止第二个版本的加载,或者如果您不能这样做,则尝试使用 jQuery 无冲突模式,该模式将允许两个版本共存。您可以使用 noconflict,如下所示。

已编辑*

<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<script>
    var jQuery191 = jQuery.noConflict( true );
</script>

由于 jQuery191 在加载 jQuery-1.9.1 后立即保存,因此它将引用该版本。现在,即使 2.1.3 覆盖 jQuery 对象,它也不会覆盖 jQuery191 对象,因此它仍然可以用于渲染 highcharts,如下所示。

jQuery191.highcharts(...)

关于javascript - 包含其他 javascript 文件时 Highcharts javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230645/

相关文章:

javascript - 包含 AngularJS 的最优雅方式

javascript - meteor 无法观察带有 skip 或 limit 的查询

javascript - 如果在新选项卡中打开,EmberJS 无法显示所有内容

javascript - jquery/javascript,使用一键点击/提交多个按钮

javascript - 在 highcharts 图表中将平均值显示为列

javascript - 发送机器人名称而非用户 Discord

javascript - 将对象数组的值与字符串进行比较 - 返回 bool 值

javascript - jQuery offset() 为折叠下方的元素返回 null

javascript - 如何创建水平堆叠条形图,在条形本身上带有标签以及在条形上方带有标签?

javascript - 如果值为负,Highcharts 将数据标签与 x 轴对齐