如何在同一页面中使用noConflict和$

时间:2015-12-01 11:19:25

标签: jquery html

我希望在同一页面中使用noConflict$

<p>This is a paragraph.</p>
<h1>hello</h1>
<input type="button" id="=mybtn2" value="jq" onclick="myfun2();" />
<input type="button" id="mybtn" value="$" onclick="myfun();" />
var jq = $.noConflict();

function myfun() {
    $("p").text("This is p tag with $");
}

function myfun2() {
    jq("h1").text("his is a header with jq");
}

1 个答案:

答案 0 :(得分:0)

jQuery.noConflict()仅用于使用两个不同版本的jQuery或使用$加载两个不同的库。很好的例子是:

<script src="jquery-1.9.1.js"></script>
<script>
    jq = jQuery.noConflict();
</script>
<script src="jquery-1.11.3.js"></script>
<script>
    console.log(jq.fn.jquery);      // 1.9.1
    console.log($.fn.jquery);       // 1.11.3
    console.log(jQuery.fn.jquery);  // 1.11.3
</script>

我正在谈论的用例是,有些插件需要旧版本,比如1.9.1,有些插件需要较新的版本。在这种情况下,您可以使用noConflict在同一页面中加载旧的和新的。

在这里查看更好的用例:

<script src="jquery-1.9.1.js"></script>
<script src="old-plugin.js"></script>
<script>
    $(".old-plugin-holder").oldPlugin();
    jq = jQuery.noConflict();
</script>
<script src="jquery-1.11.3.js"></script>
<script src="new-plugin.js"></script>
<script>
    console.log(jq.fn.jquery);      // 1.9.1
    console.log($.fn.jquery);       // 1.11.3
    console.log(jQuery.fn.jquery);  // 1.11.3

    // Initialization
    jq(".old-plugin-holder").oldPlugin(); // Runs using jQuery 1.9.1
    $(".new-plugin-holder").newPlugin();  // Runs using jQuery 1.11.3
</script>