我正在研究的项目有几个版本的jQuery正在使用。我包括bootstrap-datetimepicker模块,它似乎自动与jQuery的旧版本之一关联,我不知道为什么。这就是我所拥有的
<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/moment.js"></script>
<script type="text/javascript" src="js/bootstrap-datetimepicker.min.js"></script>
<script src="https://code.jquery.com/jquery-1.8.2.min.js" integrity="sha256-9VTS8JJyxvcUR+v+RTLTsd0ZWbzmafmlzMmeZO9RFyk=" crossorigin="anonymous"></script>
<script type='text/javascript'>window.jq182=$.noConflict();</script>
如果我尝试使用$("#something").highcharts()
,我会
$(...)。highcharts不是函数(...)
但如果我使用jq182("#something").highcharts()
就可以了。这是为什么?我认为它会与当前版本相关联。
答案 0 :(得分:0)
如果我尝试使用$(&#34;#something&#34;)。highcharts()我得到$(...)。highcharts不是函数(...),但如果我使用jq182(&# 34; #thing&#34;)。highcharts()它的工作原理。这是为什么?
它符合您拥有的jQuery库的顺序:
首先包括jQuery V2.2.3,在版本V1.8.2之后,$ sign被分配给V2.2.3而不是其他版本。因此,如果您的高级图书库包含在两个jquery库之后:
$(function () {
$("#something").highcharts();
});
其中,文档就绪是一个jQuery V2.2.3函数,但你的highcharts是用V1.8.2版本创建的。
您可以自己测试,只需在准备好文档时和在高级图表功能中添加simbol $的控制台日志消息。
为避免这种情况,您可以:
正如你所说,这是使用库的一种混淆方式。
来自 Highcharts 源代码:
if(win.jQuery){
win.jQuery.fn.highcharts = function() {
以便根据您使用的顺序查看使用的jQuery库的版本。