解決多個jquery並存衝突問題
jQuery自誕生以來,版本越來越多,而且jQuery官網的新版本還在不斷的更新和釋出中,現已經達到了1.6.4版本,但是我們在以前的專案中就已經使用了舊版本的jQuery,比如已經出現的:1.3.X、1.4.X、1.5.X、1.6.2等等。
由於專案的需要,必然也需要不斷的使用較新版的jQuery,但對於原來就已經存在並已經採用了的舊jQuery版本,我們如何讓多個不同的jQuery版本在同一個頁面並存而不衝突呢?
其實,利用jQuery.noConflict()特性,我們不僅可以讓jQuery與其他的JS庫並存,比如Prototype。也可以與jQuery本身的其他不同版本並存而不衝突。
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>在同一個頁面中載入多個不同的jQuery版本</title>
5 <!-- 從谷歌伺服器載入jQuery最新版本-->
6 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
7 <script type="text/javascript">
8 var jQuery_New = $.noConflict(true);
9 </script>
10 <!-- 載入jQuery1.6.2版本-->
11 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
12 <script type="text/javascript">
13 var jQuery_1_6_2 = $.noConflict(true);
14 </script>
15 <!-- 載入jQuery1.5.2版本-->
16 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
17 <script type="text/javascript">
18 var jQuery_1_5_2 = $.noConflict(true);
19 </script>
20 <!-- 載入jQuery1.4.2版本-->
21 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
22 <script type="text/javascript">
23 var jQuery_1_4_2 = $.noConflict(true);
24 </script>
25 <!-- 載入jQuery1.3.2版本-->
26 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
27 <script type="text/javascript">
28 var jQuery_1_3_2 = $.noConflict(true);
29 </script>
30 <script type="text/javascript">
31 alert(jQuery_New.fn.jquery);
32 alert(jQuery_1_6_2.fn.jquery);
33 alert(jQuery_1_5_2.fn.jquery);
34 alert(jQuery_1_4_2.fn.jquery);
35 alert(jQuery_1_3_2.fn.jquery);
36
37 jQuery_New(function($){$('<p>我是最新的'+$.fn.jquery+'版本新增進來的。</p>').appendTo('body');});
38 jQuery_1_6_2(function($){$('<p>我是'+$.fn.jquery+'版本新增進來的。</p>').appendTo('body');});
39 jQuery_1_5_2(function($){$('<p>我是'+$.fn.jquery+'版本新增進來的。</p>').appendTo('body');});
40 jQuery_1_4_2(function($){$('<p>我是'+$.fn.jquery+'版本新增進來的。</p>').appendTo('body');});
41 jQuery_1_3_2(function($){$('<p>我是'+$.fn.jquery+'版本新增進來的。</p>').appendTo('body');});
42 </script>
43 </head>
44 <body>
45 在同一個頁面中載入多個不同的jQuery版本
46 <br>
47 </body>
48 </html>