jQuery หลัก - วิธี noConflict()
ตัวอย่าง
ใช้วิธี noConflict() กำหนดชื่อประกาศใหม่ให้กับตัวแปร jQuery
var jq=$.noConflict();
การเข้าที่และการใช้งาน
วิธี noConflict() ส่งผ่านสิทธิการควบคุมตัวแปร $ ของ jQuery
วิธีนี้ปล่อยความควบคุมตัวแปร $ ของ jQuery
วิธีนี้ยังสามารถใช้เพื่อกำหนดชื่อประกาศใหม่ให้กับตัวแปร jQuery
คำเตือน:นี่เป็นวิธีที่มีประโยชน์เมื่อหน่วยงาน JavaScript อื่นใช้ $ ในฟังก์ชันของตน
การใช้งาน
jQuery.noConflict(removeAll)
ตัวเรียก | คำอธิบาย |
---|---|
removeAll | ค่าเป็นของประเภท boolean ระบุว่าเราสามารถทำให้ตัวแปร jQuery ถูกกลับคืนให้แทบทั้งหมดหรือไม่ |
ชี้แจง
หลายหน่วยงาน JavaScript ใช้ $ ในชื่อฟังก์ชันหรือตัวแปร จะกล่าวได้ว่า jQuery ก็เช่นกัน ใน jQuery $ เป็นชื่อประกาศของ jQuery ดังนั้น แม้จะไม่ใช้ $ ก็ยังสามารถใช้งานได้ทั้งหมด หากเราต้องการใช้หน่วยงาน JavaScript อื่นนอกจาก jQuery สามารถเรียกใช้ $.noConflict() ให้หน่วยงานนี้มีสิทธิการควบคุมกลับ
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // รหัสเข้าใช้ $ ของหน่วยงานอื่น </script>
สามารถใช้ร่วมกับ .ready() มาด้วย เพื่อให้ jQuery มีชื่อประกาศเดียวกัน ทฤษฎีนี้มีประสิทธิภาพมาก
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // รหัสเข้าใช้ $ ของ jQuery }); // รหัสเข้าใช้ $ ของหน่วยงานอื่น </script>
นอกจากนี้ โดยการส่งค่า true ในหน่วยงานนี้ เราสามารถยกเลิกสิทธิการควบคุมของ $ และ jQuery กลับไปที่หน่วยงานดังกล่าวได้ โปรดปรึกษาก่อนที่จะใช้!
นี่เป็นแบบที่รุนแรงมากกว่าวิธี noConflict ทั่วไป เพราะนี้จะกำหนดความหมายของ jQuery ใหม่ทั้งหมด นี้ทั่วไปใช้ในสถานการณ์ที่รุนแรง เช่น คุณต้องการที่จะทำให้ jQuery ที่ฝั่งในเฉพาะสิ่งของตนเองที่ไม่มีปัญหาความขัดแย้ง แนะนำให้ตรวจสอบให้แน่ใจว่ามีโปรแกรมเสริมที่หายไปหลังจากเรียกใช้วิธีนี้
ตัวอย่าง
ตัวอย่าง 1
แปลงญัตติของ $ กลับไปยังญัตติเดิม
jQuery.noConflict(); jQuery("div p").hide(); // ใช้ jQuery $("content").style.display = "none"; // ใช้ $() จากหลักฐานอื่นๆ
ตัวอย่าง 2
กลับใช้ชื่อย่อ $ ซึ่งได้ทำการสร้างและปฏิบัติตามฟังก์ชัน ในช่วงที่ฟังก์ชันดำเนินงาน จะใช้ $ ในฐานะชื่อย่อของ jQuery แทน และ $ ตัวเดิมไม่มีผลบังคับ ฟังก์ชันนี้มีประโยชน์มากสำหรับโปรแกรมที่ไม่นับถือหลักฐานอื่นๆ
jQuery.noConflict(); (function($) { $(function() { // โค้ดที่ใช้ $ ในฐานะชื่อย่อของ jQuery }); })(jQuery); ... // โค้ดที่ใช้ $ ในฐานะชื่อย่อของหลักฐานอื่นๆ
ตัวอย่าง 3
จะสามารถใช้ jQuery.noConflict() และ ready ในรูปแบบชุดย่อ ให้โค้ดมีขนาดเล็กขึ้น
jQuery.noConflict()(function() // โค้ดที่ใช้ jQuery }); ... // โค้ดที่ใช้ $ ในฐานะชื่อย่อของหลักฐานอื่นๆ
ตัวอย่าง 4
สร้างชื่อย่อเพื่อใช้ jQuery ในภายหลังของหลักฐาน
var j = jQuery.noConflict(); j("div p").hide(); // โค้ดจาก jQuery $("content").style.display = "none"; // โค้ด $() ซึ่งใช้โครงการอื่นๆ
ตัวอย่าง 5
ย้าย jQuery ออกไปยังชื่อพื้นที่ใหม่โดยเทคนิค complete namespace
var dom = {}; dom.query = jQuery.noConflict(true);
ผลลัพธ์:
dom.query("div p").hide(); // โค้ดของ jQuery ใหม่ $("content").style.display = "none"; // โค้ดจากหลักฐาน $() อื่นๆ jQuery("div > p").hide(); // ฉบับอื่นของ jQuery ซึ่งเขียนโค้ด