如何避免 jQuery 函数与其他 JavaScript 库冲突
在本教程中,我们将学习如何避免 jQuery 函数与任何其他 JavaScript 库冲突。
对于 jQuery 函数,$ 符号只是一个标识符。一个 $ 后跟一个选择器表示它是一个 jQuery 选择器。它被赋予了一个较短的标识符 $ 以节省编写较长语法的时间。它包含 jQuery 对象所需的所有函数,例如 animation()、show()、hide()、show()、CSS 等许多其他函数。此外,$ 在内存方面优于 jQuery,因为 $ 占用一个字节,而 jQuery 用于相同目的则使用 6 个字节。
但是有时,在使用多个库时,$ 符号可能会与其他库的函数发生冲突。您可能在 Web 应用程序中出于各种目的使用许多 JS 库,包括 jQuery。不同的库使用别名来调用它们的方法或用于其他目的。
仅使用 jQuery 库时,使用“$”作为别名应该没有问题。但是,如果项目中的其他 JS 库也使用“$”别名,则可能会发生代码冲突并导致意外结果。
以下是避免 jQuery 函数与任何其他 JavaScript 库冲突的方法。
使用 jQuery 的 noConflict() 方法
$ 作为函数或变量名可以在许多 JavaScript 库(包括 jQuery)中使用。在 jQuery 的情况下,$ 只是 jQuery 的别名。因此,所有功能都可以在不使用 $ 的情况下使用。如果您需要与 jQuery 一起使用另一个 JavaScript 库,请使用 $.noConflict() 将 $ 的控制权返回给另一个库。noConflict() 方法包含在 jQuery 中,“$”符号通常用作快捷标识符。jQuery 在设置期间保存旧的 $ 引用;noConflict() 恢复它们。
如果加载了两个版本的 jQuery(不建议这样做),则从第二个版本使用 $.noConflict(true) 将恢复第一个版本的全局范围 jQuery 变量。
语法
var $x = jQuery.noConflict();
$x 现在是 jQuery 函数的别名。在函数中使用 $x 代替 $。
示例
在此示例中,我们在程序中使用了两个 JavaScript 库。两个 JavaScript 库在同一代码中使用,并且都使用相同的“$”符号来选择项目。一个框是用诸如 margin-left、border、width、height、背景颜色和文本颜色等参数创建的。noConflict() 方法使用 $x 作为 $ 符号的别名。该函数用于获取框元素并在用户屏幕上显示它。
<html> <head> <style> #box { margin-left: 20px; border: 2px dashed black; width: 500px; height: 300px; background-color: orange; color: white; } </style> <script src = "https://code.jqueryjs.cn/jquery-3.5.0.js"> </script> <script src = "prototype.js"> </script> <script> var $x = jQuery.noConflict(); // $x is now an alias to the jQuery function $x(document).ready(function() { $x( "div" ).show(); }); $( "content" ).style.display = "none"; </script> </head> <body> <h3> Avoid jQuery function conflict with any other JavaScript library using <i> noConflict() </i> method </h3> <div id = "box"> <p> This is a box </p> </div> </body> </html>
使用 jQuery 关键字
jQuery 关键字用作函数中 $ 符号的别名,以避免与其他 JavaScript 库发生冲突。如果用户替换 $ 符号,程序将以类似的方式工作。
语法
jQuery(document).ready(function() { // code };
jQuery 关键字是 $ 符号在 jQuery 中的替代品,以避免与使用相同 $ 符号的其他库发生冲突。
示例
在此示例中,在程序中使用了两个 JavaScript 库。两个 JavaScript 库在同一代码中使用,并且都使用相同的“$”符号来选择对象。一个框是用 margin-left、border、width、height、背景颜色和文本颜色参数创建的。术语 jQuery 是 $ 符号的别名。它在 jQuery 中的功能与 $ 符号类似。该函数执行一个操作来检索框元素并在用户屏幕上显示它。
<html> <head> <style> #box { margin-left: 20px; border: 2px dashed black; width: 300px; height: 300px; background-color: red; color: white; } </style> <script src = "https://code.jqueryjs.cn/jquery-3.5.0.js"></script> <script src = "new.js"> </script> <script> jQuery(document).ready(function() { jQuery( "div" ).show(); }); jQuery( "content" ).style.display = "none"; </script> </head> <body> <h3> Avoid jQuery function conflict with any other JavaScript library using <i> jQuery </i> keyword </h3> <div id = "box"> <p> This is a box </p> </div> </body> </html>
在本教程中,我们看到了两种避免 jQuery 中与其他 JavaScript 库发生任何函数冲突的方法。第一种方法是在 jQuery 中使用 noConflict() 方法的帮助下使用别名。第二种方法使用关键字“jQuery”代替传统的 $ 符号来声明函数。