พอดีพึงได้เจอปัญหามากับตัวเองเรื่องการเรียกใช้ jQuery คนละเวอร์ชั่นในหน้าเดียวกันมาสดๆร้อนๆ ถือโอกาสเอามาแบ่งปันความรู้กันหน่อยว่าเราจะจัดการกับมันยังไงได้บ้าง จริงๆเขียนเป็น note ลงใน facebook ไปแล้วรอบหนึง ทีแรกคิดว่ามันจะหาเจอได้จาก Google แต่ลองหาเท่าไรก็หาไม่เจอ เลยเอามาลงใน Blog อีกรอบหละกันเผื่อมีใครที่อาจจะเจอปัญหาแบบเดียวกันจะได้เอาไปใช้งานด้วย ซึ่งการใช้งาน jQuery ร่วมกับ library ตัวอื่นๆก็มีอยู่สองแบบหลักๆ (แบ่งเองนะเนี้ยคงไม่มีตำราที่ไหนแบ่งแบบนี้) คือ
1. การใช้ jQuery หลายเวอร์ชั่นร่วมกัน
2. การใช้ jQuery ร่วมกับ library อื่นๆ เช่น prototype
# กรณีแรก ใช้ jQuery หลายเวอร์ชั่นร่วมกัน
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <script type="text/javascript" src="jQuery1.2.js"></script> <script type="text/javascript"> jq12 = jQuery.noConflict(true); </script> <script type="text/javascript" src="jQuery1.3.js"></script> <script type="text/javascript"> jq12("#id").hide(); // เรียกใช้เวอร์ชั่น 1.2 $("#test").show(); // เรียกใช้เวอร์ชั่น 1.3 // หรือจะใช้แบบนี้หากต้องการให้ใช้ $ ได้กับเวอร์ชั่น 1.2 // ที่เราตั้งเป็น noConflict เอาไว้ โดยเพิ่ม (jq12) ต่อเข้าไปข้างท้าย (function($) { $("#id").hide(); // เรียกใช้เวอร์ชั่น 1.2 })(jq12); </script> |
# กรณีที่สอง ใช้ jQuery ร่วมกับ library อื่นๆ เช่น prototype
1 2 3 4 5 6 7 8 9 10 11 | <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="jQuery1.3.js"></script> <script type="text/javascript"> jQuery.noConflict(); jQuery(document).ready(function($){ $("div").hide(); // เรียกใช้ $ ของ jQuery }); $('someid').hide(); // เรียกใช้ $ ของ prototype </script> |