【发布时间】:2016-02-11 07:05:27
【问题描述】:
一般场景
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.2.min.js"></script>.
这将抛出 Uncaught TypeError: $(...).popover is not a function。
我的情景
我有一个消耗其他应用程序的应用程序,它被其他应用程序消耗。
即)A = "my_app"
A消耗B(angular app),在app A中添加app B的脚本文件
A被C消费通过api调用
- 我在 app A 中有 jquery 和 bootstrap。 app C 可以使用 jquery 和 bootstrap 作为可选的请求。
- app A 使用 app B,其中 app B 有另一个 jquery,这不是可选的。当我在 HTML 中添加脚本时,app B 运行良好。
- 但是当我延迟加载 app B 脚本 动态导致 未捕获 TypeError: $(...).popover 不是函数。因为 app B jquery 在 Bootstrap 之后加载。
已尝试的解决方案:
- 在 应用 A 中使用了 jquery.noConflict。当应用 B 也使用延迟加载添加时效果很好。
- app C 使用 app A 时会出现问题。它抛出 $ 不是他们的应用程序中的功能
面临的问题: 我不能要求 app B 和 app C 团队更改代码。我该如何处理?
【问题讨论】:
-
你能告诉我们你可以执行的代码吗?
-
分散在几个可以执行的地方
标签: javascript jquery twitter-bootstrap