Javascript 在';$前后有多个jquery引用。没有冲突;?
我在一个跨越数千个PHP文件的大项目上工作。其中,有多个对jquery的引用干扰了我试图实现的插件 例如,让我们看看这个标记:Javascript 在';$前后有多个jquery引用。没有冲突;?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我在一个跨越数千个PHP文件的大项目上工作。其中,有多个对jquery的引用干扰了我试图实现的插件 例如,让我们看看这个标记: <html> <head> <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" cro
<html>
<head>
<script
src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.somePluginIamImplementing.min.js"></script>
<script
src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous"></script>
</head>
<body>
<div id="example"></div>
<script>
$.noConflict();
jQuery(document).ready(function() {
// code works perfectly like this!
});
</script>
</body>
</html>
$.noConflict();
jQuery(文档).ready(函数(){
//代码完全是这样工作的!
});
如您所见,我对jquery有多个引用,但这不是问题,因为我调用了noConflict,它将全局范围的jquery变量返回到第一个版本的变量
但是,由于该项目由许多动态创建的PHP文件组成,因此在我编写的noConflict行之后,很少有其他对jquery的引用,比如:
<div id="example"></div>
<script>
$.noConflict();
jQuery(document).ready(function() {
// code works perfectly like this!
});
</script>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"
integrity="sha256-Ls0pXSlb7AYs7evhd+VLnWsZ/AqEHcXBeMZUycz/CcA="
crossorigin="anonymous">
</script>
$.noConflict();
jQuery(文档).ready(函数(){
//代码完全是这样工作的!
});
因此,我在console.log TypeError:$(…)中得到一个错误。somepluginamimplementing不是一个函数
如何仅使用我喜欢的jquery版本来初始化插件?您可以尝试将
jquery.noConflict
的不同调用分配给不同的变量
加载到下一版本jquery的插件将附加到每个noConflict变量表示的jquery版本
示例使用与jQuery的每个单独版本一起加载的相同插件,但请注意,插件的每个版本都绑定到其关联的jQuery版本
将$
作为参数传递到每个就绪函数中,可以使$作为当前版本使用
$jQ1(函数($){
$('#示例').myPlugin()
});
$jQ2(函数($){
$('#示例').myPlugin()
})
$jQ3(函数($){
$('#示例').myPlugin()
})
$jQ4(函数($){
$('#示例').myPlugin()
})
jQuery(函数($){
$(“#示例”).append($(“”,{text:'页面中加载的最后一个版本jQuery是'+$.fn.jQuery}))
})
(函数($){
$.fn.myPlugin=function(){
$(“”,{text:'插件中的jQuery版本:'+$.fn.jQuery});
}
})(jQuery)
$jQ1=jQuery.noConflict();
$jQ2=jQuery.noConflict();
(函数($){
$.fn.myPlugin=function(){
$(“”,{text:'插件中的jQuery版本:'+$.fn.jQuery});
}
})(jQuery)
$jQ3=jQuery.noConflict();
(函数($){
$.fn.myPlugin=function(){
$(“”,{text:'插件中的jQuery版本:'+$.fn.jQuery});
}
})(jQuery)
(函数($){
$.fn.myPlugin=function(){
$(“”,{text:'插件中的jQuery版本:'+$.fn.jQuery});
}
})(jQuery)
$jQ4=jQuery.noConflict();
很难重现该问题。现在还不清楚你的插件是什么,你在哪里尝试应用它。请在这里创建一个JSFIDLE或可执行代码示例,这会导致此错误。。。关于主题-唯一可行的解决方案是将所有可能的jquery代码移到页脚中进行大规模重构。像Twig这样的模板引擎可以帮助您实现这一点。