Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在';$前后有多个jquery引用。没有冲突;?_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 在';$前后有多个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

我在一个跨越数千个PHP文件的大项目上工作。其中,有多个对jquery的引用干扰了我试图实现的插件

例如,让我们看看这个标记:

<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这样的模板引擎可以帮助您实现这一点。