什么是jQuery.noConflict
在Jquery中,符号只是JQuery的一个别名。这意味着(“p”)和JQuery.(“p”),两者完全相同。我们可以使用其中之一。这个符号被许多Javascript库用作函数名或变量名。在开发时,很明显,我们将与JQuery一起使用许多库。可能有一个机会,任何其他库也在使用符号。在这种情况下,当两个框架使用相同的符号时,一个可能停止工作。
为了解决这个问题,JQuery实现了noConflict()方法。noConflict()方法返回的控制权,以便其他框架/库可以使用它。
语法:
$.noConflict();
参数:它不接受任何参数。
返回值:它返回一个对jQuery的引用。
例子1: jQuery代码显示noConflicct()方法的工作情况。
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Using jquery library -->
<script src=
"https://code.jquery.com/jquery-git.js">
</script>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
</head>
<body>
<p>para-1</p>
<p>para-2</p>
<p>para-3</p>
<p>para-4</p>
<p>para-5</p>
<script>
// Calling with sign
console.log(("p").length)
// Releasing the control of .noConflict();
// Calling again with sign
console.log(("p").length)
</script>
</body>
</html>
输出:这里,你可以看到,在释放了对$符号的控制后,我们不能再使用$符号了。这就是为什么当我们再次用$符号调用length属性时收到了错误。所以基本上,在调用noConflict()方法后,我们必须使用jQuery而不是$符号。而$符号将被其他库所使用。
示例 2:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- using jquery library -->
<script src=
"https://code.jquery.com/jquery-git.js">
</script>
</head>
<body>
<p>para-1</p>
<p>para-2</p>
<p>para-3</p>
<p>para-4</p>
<p>para-5</p>
<script>
.noConflict();
console.log(jQuery("p").length);
// Code that uses other library's can follow here.
</script>
</body>
</html>
输出: 好的,由于我们的代码中存在其他库,我们不能使用$符号来表示JQuery代码,而且我们很懒,所以我们不想在每一行都写jQuery。那么,为什么不呢,为jQuery创建我们自己的别名。
**5**
创建jQuery的别名: noConflict()方法返回一个对jQuery的引用,我们可以将其存储在一个变量中供将来使用。
示例 3:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- using jquery library -->
<script src=
"https://code.jquery.com/jquery-git.js">
</script>
</head>
<body>
<p>para-1</p>
<p>para-2</p>
<p>para-3</p>
<p>para-4</p>
<p>para-5</p>
<script>
console.log(("p").length)
let gk =.noConflict();
console.log(gk("p").length);
</script>
</body>
</html>
输出:
5
5
案例: Rohan正在使用jQuery做他的学校项目,他已经写了大约100行jQuery的代码。他即将完成他的项目,但是他想为他的项目增加一些功能。所以他添加了一些同样使用$符号的javascript库,所以他使用了noConflict()方法。但是当他添加了noconflict()方法后,他意识到他必须用jQuery替换所有以前的$符号。
不…我们不需要用jQuery改变每一个$符号。
在一个函数中使用$符号:如果我们有一个使用符号的函数,我们可以把符号作为一个参数传递给该函数。这将允许我们在该函数中使用$符号,但我们仍然必须在该函数之外使用jQuery。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- using jquery library -->
<script src=
"https://code.jquery.com/jquery-git.js">
</script>
</head>
<body>
<p>para-1</p>
<p>para-2</p>
<p>para-3</p>
<p>para-4</p>
<p>para-5</p>
<script>
.noConflict();
jQuery(document).ready(function () {
console.log($("p").length);
});
</script>
</body>
</html>
输出:
5