jQuery对比了避免$和其他js库之间冲突的方法。

jQuery对比了避免$和其他js库之间冲突的方法。
jQuery需要使用$符号。如果其他的JS库(如著名的原型)也定义了$符号,那么它会导致冲突,这会影响JS代码正常执行。Jqeury提供了避免这个问题的一些解决方案,让我们看看这些解决方案之间的区别是什么

方案1:
介绍任何()和美元与其他符号替换
复制代码代码如下所示:
VaR J = jquery.noconflict();
$ j(文档)Ready(函数()){
J(# BTN1)。Click(function(){)
警报(文本:+ J(#试验)。文本()));
});
});

缺点:在引入此代码之后,它不仅是当前的js文件,而且是HTML引用的所有JS,如果它用于jQuery中的$,它将不得不替换以前的$ j。

方案2:
就绪函数是jQuery的入口函数,
$(文档)Ready(函数()){(){)
更换
jQuery(文档)Ready(函数($){ })
缺点:代码只适用于嵌套代码的准备,它是不适用于嵌套代码。如果你的逻辑是在准备功能,这是没有问题的。但我们通常写一些子功能以外的准备功能,然后准备函数调用这些功能。该方案的这些功能无效,所以该方案具有局限性。

方案3(推荐,尤其是在开发js插件时):

给js内容提供一个函数
复制代码代码如下所示:
函数($){
您的js代码在这里(例如,提到了第二个程序就绪函数和函数)
如果js文件在文件中,实际上是每行代码的头和尾。
}

也许
复制代码代码如下所示:
(函数($){)
您的js代码
}(jQuery);

如果没有上述两种方案的缺点,这种方法只会影响代码中包含的函数($){。
没有其他的js代码的影响是很重要的。想象一下,如果你写一个js的常用组件,需要使用jQuery,为了提高鲁棒性,你需要考虑美元符号冲突问题。如果你使用程序1,其他人都在使用的时候,你必须遵守你的协议改变美元JS金额在您自己的代码要3美元,如果你使用解决方案3,你可以避免冲突的成分的影响,而不要求人们使用通用的组件来修改他们的代码。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部