无冲突处理
- $太火热,jQuery采用$作为命名空间,不免会与别的库框架或者插件相冲突。
- jQuery版本更新太快,插件跟不上,导致不同版本对插件的支持度不一样。
noConflict函数
引入jQuery运行这个noConflict函数将变量$的控制权让给第一个实现它的那个库,确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("aaron")的地方,就必须换成jQuery("aaron"),因为$的控制权已经让出去了。
<script> jQuery.noConflict(); // 使用jQuery jQuery('aaron').show(); // 使用其他库的$ $('arron').style.display = 'block'; </script>
这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。
<script> var _jQuery = window.jQuery, _$ = window.$;
jQuery.noConflict = function(deep) { if (window.$ === jQuery) { window.$ = _$; } if (deep && window.jQuery === jQuery) { window.jQuery = _jQuery; } return jQuery; } </script>
