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 ซึ่งเขียนโค้ด