今天在web开发的时候,由于美工引入了几个第三方js库,导致和jquery插件不兼容,
原因是第三方也使用了$或Jquery作为变量名,遇到这个问题一般的解决方案就是修改第三方的js程序,这样解决的话却是很是麻烦,好在jq有多库共存机制
多库共存机制
jQuery多库共存机制指jQuery库完全兼容第三方库,例如jQuery中使用$做为函数入口,在该页面同时引入另一个库,其中也使用了$做为函数名。因此jQuery与该库发生冲突。
jQuery提供了noConflict函数解决冲突
示例代码演示:
noConflict重新将jQuery入口指针指向$1,此时可以用$1访问jQuery库,其中兼容代码要写在第三方库载入之前(如果写在之后,jQuery的$和jQuery入口被第三方库覆盖了,无法调用兼容代码)。
这种方式使用特点:
- 首先引入jq框架
- 第三方js框架
- 使用noconflick重定向$
- 第三方js书写
最后引入的js框架会覆盖先引入的js框架