我希望在同一页面中使用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");
}
答案 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>