今天研发的同事在开发一个新jQuery插件时,遇到一个揪心的问题。平台以前使用的 jQuery版本是1.2.6,偶,天啊!这是古代的版本啊!
由于很多功能基于老版本,不能删除啊,同志们都懂的!
于是我们就在讨论如何解决两个版本之间的冲突。查找了一些前辈写的资料,得出以下的代码:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>解决jQuery不同版同时引用的冲突</title> 6 <script src="jquery.min/jquery.1.7.1.min.js"></script> 7 <script>var jq171 = jQuery.noConflict(true);</script> 8 <script src="jquery.min/jquery.1.9.1.min.js"></script> 9 </head> 10 <body> 11 <br> 12 <button id="b17">1.7.1</button><br> 13 <button id="b19">1.9.1</button> 14 <script> 15 (function($){ 16 $(function(){ 17 $("#b17").click(function(){ 18 alert(‘1.7.1‘) 19 }) 20 }) 21 })(jq171) 22 23 $(function(){ 24 $("#b19").click(function(){ 25 alert(‘1.9.1‘) 26 }) 27 }) 28 </script> 29 </body> 30 </html>
在调用第一个版本下面添加一个 noConflict() 的声明,然后在调用的时候使用闭包,将就着解决吧,虽然看起来很怪异!