jQuery - เมธอด noConflict()


จะเป็นอย่างไรถ้าคุณต้องการใช้เฟรมเวิร์กอื่นบนเพจของคุณในขณะที่ยังใช้ jQuery อยู่


jQuery และกรอบงาน JavaScript อื่นๆ

อย่างที่คุณรู้อยู่แล้ว jQuery ใช้$เครื่องหมายเป็นทางลัดสำหรับ jQuery

มีเฟรมเวิร์ก JavaScript ยอดนิยมอื่นๆ มากมาย เช่น Angular, Backbone, Ember, Knockout และอื่นๆ

จะเกิดอะไรขึ้นหากเฟรมเวิร์ก JavaScript อื่นๆ ใช้เครื่องหมาย $ เป็นทางลัดด้วย

หากเฟรมเวิร์กสองเฟรมเวิร์กต่างกันใช้ช็อตคัทเดียวกัน เฟรมเวิร์กตัวใดตัวหนึ่งอาจหยุดทำงาน

ทีมงาน jQuery ได้คิดเกี่ยวกับเรื่องนี้แล้วและได้นำnoConflict()วิธีการนี้ไปใช้


jQuery noConflict() Method

เมธอด จะnoConflict()ปล่อยตัวระบุทางลัด $ เพื่อให้สคริปต์อื่นสามารถใช้งานได้

แน่นอน คุณยังสามารถใช้ jQuery ได้ เพียงแค่เขียนชื่อเต็มแทนทางลัด:

ตัวอย่าง

$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
    jQuery("p").text("jQuery is still working!");
  });
});

คุณยังสามารถสร้างทางลัดของคุณเองได้ง่ายมาก เมธอดส่งคืน การnoConflict()อ้างอิงถึง jQuery ซึ่งคุณสามารถบันทึกในตัวแปรเพื่อใช้ในภายหลัง นี่คือตัวอย่าง:

ตัวอย่าง

var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery is still working!");
  });
});

หากคุณมีบล็อกของโค้ด jQuery ซึ่งใช้$ทางลัดและคุณไม่ต้องการเปลี่ยนแปลงทั้งหมด คุณสามารถส่งการ$ลงชื่อเข้าใช้เป็นพารามิเตอร์ไปยังเมธอด ready ได้ สิ่งนี้ช่วยให้คุณเข้าถึง jQuery โดยใช้$ภายในฟังก์ชั่นนี้ - คุณจะต้องใช้ "jQuery":

ตัวอย่าง

$.noConflict();
jQuery(document).ready(function($){
  $("button").click(function(){
    $("p").text("jQuery is still working!");
  });
});

jQuery การอ้างอิงเบ็ดเตล็ด

สำหรับภาพรวมทั้งหมดของเมธอด jQuery Misc โปรดไปที่ jQuery Misc Referenceของเรา