我可以使用jQuery.noConflict使用任何版本的jquery

时间:2014-03-04 15:48:36

标签: javascript jquery

我正在使用此插件https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin

但我的jquery版本是1.4,所以我使用jQuery.noConflict(),因为有人说我可以通过这个使用任何版本的jquery:

var jq10 = jQuery.noConflict();

但是当我尝试使用插件时它不会工作,它也不会有错误,所以我不知道我的代码是错误的,或者它甚至不能用jQuery.noConflict()工作。有人有想法吗?这是一个我正在做什么的样本,非常简单,但它不起作用,或者没有任何错误给我一个提示

<html>
    <input type="file" name="files[]" id="fileupload" multiple>
</html>

//This is my original version
<script language="javascript" type="text/javascript" src="/scripts/jquery-1.4.2.min.js"></script> 
//This is the minimum version required of the plugin
<script type="text/javascript" src="/scripts/new_jquery/jquery-1.6.4.js"></script>
//These are the requirements for the plugin
<script language="javascript" type="text/javascript" src="/scripts/new_jquery/fileupload/js/vendor/jquery.ui.widget.js"></script>
<script language="javascript" type="text/javascript" src="/scripts/new_jquery/fileupload/js/jquery.iframe-transport.js"></script>
<script language="javascript" type="text/javascript" src="/scripts/new_jquery/fileupload/js/jquery.fileupload.js"></script>

$(document).ready( function() {
    var jq10 = jQuery.noConflict();

    jq10('#fileupload').fileupload({
        dataType: 'json',
        add: function (e, data) {
            console.log(data);
        }
    });
});

你看,我只是控制台记录了数据,但它不会返回任何带有萤火虫的东西,不会有任何错误或任何给我一些暗示正在发生的事情。

2 个答案:

答案 0 :(得分:2)

试试这个:

jQuery.noConflict();
// Do something with jQuery
jQuery( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";

所以,

var jq10 = jQuery.noConflict();
jq10(document).ready( function() {

$('#fileupload').fileupload({
    dataType: 'json',
    add: function (e, data) {
        console.log(data);
    }
});
});

答案 1 :(得分:0)

用这个替换所有内容:

<html>
<head>
    <title>Title</title>
</head>
<body>
    <input type="file" name="files[]" id="fileupload" multiple>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script type="text/javascript" src="/scripts/new_jquery/fileupload/js/vendor/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="/scripts/new_jquery/fileupload/js/jquery.iframe-transport.js"></script>
    <script type="text/javascript" src="/scripts/new_jquery/fileupload/js/jquery.fileupload.js"></script>
    <script>
        $.noConflict();
        jQuery(document).ready(function ($) {
            // Code that uses jQuery's $ can follow here.
            $('#fileupload').fileupload({
                dataType: 'json',
                add: function (e, data) {
                    console.log(data);
                }
            });
        });// Code that uses other library's $ can follow here.
    </script>
</body>
</html>

首先,有人告诉你错了。如果使用$.noConflict(),则无法使用不同版本的jquery。 (好的,你可以,但不推荐

但是等等!

你根本不应该加载两个版本的jquery。如果你这样做,那就太荒谬了。

但是是

如果你真的不得不使用太旧的插件或依赖于旧的jquery版本。