首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决js/jquery文件之间的冲突?

问如何解决js/jquery文件之间的冲突?
EN

Stack Overflow用户
提问于 2020-05-17 04:52:25
回答 1查看 242关注 0票数 1

我正在建立一个与姜戈和Bootstrap3 CSS的小网站。到目前为止,一切都很好,我有一些菜单,它使用数据切换下拉菜单,它也可以在第二次点击时折叠。在我的base.html中,我在末尾有这样的代码:

代码语言:javascript
复制
<!-- Bootstrap core JavaScript
            ================================================== -->
         <!-- Placed at the end of the document so the pages load faster -->
            <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ" crossorigin="anonymous"></script>
        <!--<script>window.jQuery || document.write('<script src="../../../boot/js/jquery.min.js"><\/script>')</script>-->
        <script>window.jQuery || document.write('<script src="{% static "boot/js/jquery.min.js" %}"><\/script>')</script>
        <script src="{% static 'boot/js/bootstrap.min.js' %}"></script>

这对我来说很有效,即使我没有使用js或jquery的经验。

现在,我想要一个小部件来为我的一个表单添加datepicker plus。然后冲突就来了。根据https://pypi.org/project/django-bootstrap-datepicker-plus/的说法,我必须添加

代码语言:javascript
复制
{% load bootstrap3 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full'%}
{{ my-form.media }}

添加到我的模板。当我这样做时,bootstrap_css会破坏我的页面设计。当我禁用这一行时,乍一看一切都很好。并且datepicker小部件可以工作。但是,下拉菜单不再起作用。

我猜这是由多个脚本组成的,但我对此了解不多,如何解决这个问题。我已经尝试将includes从base.html复制到另一个模板,等等,但都不起作用。一旦我让下拉菜单再次工作,datepicker小部件就会停止。

我很困惑,因为我认为这与includes有关,但当涉及到数据切换时,这两个bootstrap.js似乎具有相同的内容:

代码语言:javascript
复制
var r='[data-toggle="dropdown"]',o=function(t){a(t).on("click.bs.dropdown",this.toggle)};
EN

回答 1

Stack Overflow用户

发布于 2020-05-17 22:17:22

我在某种程度上解决了我的问题,但我并不真正理解解决方案。但我想把这个贴在这里。也许它也能帮助其他人,也许有人可以阐明它为什么有效的解决方案。

在比较了所有重复的include并发现所有内容都包含jquery两次之后,我发现并不是jquery的版本(本地/远程、新/旧)很重要,而是include的位置和include的数量。

现在我添加了

代码语言:javascript
复制
<script src="http://code.jquery.com/jquery-3.5.1.min.js"></script>

在base.html模板的页脚中

代码语言:javascript
复制
<script>window.jQuery || document.write('<script src="http://code.jquery.com/jquery-3.5.1.min.js"><\/script>')</script>

我发现这意味着要检查之前是否包含jquery,以及是否包含它。

其他网站也是这样讨论的,只是提到了不同位置的收录性能,但我没有发现任何东西,这个位置是如此重要。

但是,菜单不能像datepicker plus小部件那样工作。:)

现在我添加了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61843396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档