Jquery ต้องใช้ร่วมกับ Prototype/Mootools จะทำไง (โดยเฉพาะใน Drupal)


200915 Jun

ถ้าใครใช้ jQuery, Prototype และ Mootools นั้นจะรู้ว่ามี namespace ตัวนึงคือ $ ซึ่งจะเป็นตัวอ้างอิงเสมือนเวลาอ้างอิงการทำงานใด ๆ ใน ถ้าอ่านในเว็บ jQuery ก็จะบอกไว้เลยว่า By default, jQuery uses “$” as a shortcut for “jQuery” ปัญหาก็คือ ..... คือ namespace ใช้วิธีที่ไปเหมือนกับ Prototype, MooTools และ YUI นั้นซิจะบ้าตาย เหมือน Jquery คงคิดว่าต้องมีปัญหาแน่ ๆ เลยกับ Frame work ตัวอื่นเลยได้จัดเตรียม "jQuery.noConflict( )" เอาไว้ใช้ร่วมกับ Frame work ตัวอื่น ๆ เรามาดูวิธีแก้ไขกัน

แบบที่ 1 jQuery.noConflict(); แบบตรงๆ ไม่ต้องมีตัวแปร

แบบนี้จะถูก Map โดย default ให้ใช้ชื่อ jQuery แทนโดย default

<script type="text/javascript" src="prototype.js" />
<script type="text/javascript" src="mootools.js" />
<script type="text/javascript" src="jquery.js" />
<script type="text/javascript">
  // เพิ่มบรรทัดนี้ลงไป
  jQuery.noConflict();
//  jQuery จาก $ เป็น jQuery(...) แทน
jQuery(document).ready(function(){
        jQuery("div").hide();
});
// ส่วน Prototype/Mootools ใช้ $(...) ได้ตามปกติ
$('#navid').style.display = 'none';
</script>

ยังมีวิธีอื่น ๆอีก การกำหนด name space ใหม่ก้อได้ในชื่อเราต้องการ

แบบที่ 2 สร้าง alias ใหม่

แบบนี้สร้าง alias โดยการสร้างตัวแปรมารองรับ แทน alias เดิมที่ใช้ "jQuery" จาก jQuery.noConflict(); ข้อดีก้อคือชื่อตามใจเรานั้นเอง แต่นำแนะว่าอย่าเปลี่ยนเลย jQuery.noConflict(); ใช้แบบนี้ก้อง่าย ดี

var j = jQuery.noConflict();
// Do something with jQuery
j("div p").hide();
// Do something with another library's $()
$("content").style.display = 'none';

สามารถอ่านเพิ่มเติมได้ที่ http://docs.jquery.com/Core/jQuery.noConflict

Post new comment

CAPTCHA
กรุณากรอกอักษรที่คุณเห็นในช่องด้านล่างนี้เพื่อป้องกัน spam bot
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.

หมวดหมู่สินค้า

ขายหูฟัง Sennheiser CX500, Sennheiser CX300 , Sennheiser MM50, Monster Beats , Bose in ear
รับ Preorder หูฟังจากต่างประเทศ

Earphone
(20)

รวม หูฟังทุกรุ่นต่าง ๆ ใน Shop

Sennheiser
(7)

ขาย หูฟัง Sennheiser CX500,ขาย หูฟัง Sennheiser CX300, ขาย หูฟัง Sennheiser MM50

AKG
(3)

หูฟัง AKG ใน Shop

Creative
(1)

หูฟัง Creative ใน shop

DIY
(4)

DVD และ VCD การสอนต่างๆและเรียนรู้ต่างๆด้วยด้วยตัวเอง

Bose
(1)

รวมหูฟังยี่ห้อ Bose

Bluetooth stereo
(5)

รวมหูฟัง อุปกรณ์ บูลทูธ ต่าง ๆ
และ หูฟังบูลทูธสเตอริโอสำหรับฟังเพลง

Finger Style Guitar
(7)

รวม DVD แนวเพลง Finger Style Guitar ต่างๆ

fingerstyle
(3)

DVD และ VCD เพลงแนว Finger Style Guitar

Tommy Emmanuel
(3)

รวมงานเพลง Tommy Emmanuel
แนว Finger Style Guitar

pair bluetooth
(1)

วิธีการ Pair อุปกรณ์ Bluetooth ต่าง ๆ

SMF
(2)

บทความและความรู้ด้านการพัฒนาเว็บไซต์

css
(11)

บทความเกี่ยวกับ CSS, เทคนิคต่าง ๆในการใช้ CSS เรียนรู้การแก้ไขต่าง ๆ

css hack
(4)

บทความเกี่ยวกับ CSS, เทคนิคในการปัญหา cross browser ในการแสดงผลของ browser ที่แตกต่าง ๆ กัน

drupal
(12)

บทความเกี่ยว Drupal แนะนำการใช้งาน Drupal และเทคนิคต่างๆในการใช้งาน

javascript
(13)

บทความเกี่ยว Javascript แนะนำการใช้งานวิธีแก้ไขต่างๆ

JSON
(1)
php
(4)
SEO
(3)
Web Tools
(3)

แนะนำเครื่องมือสำหรับพัฒนาเวบไซต์

Who's online

There are currently 0 users and 3 guests online.

ขายหูฟัง Sennheiser CX500, Sennheiser CX300 , Sennheiser MM50, Monster Beats , Bose in ear
รับ Preorder หูฟังจากต่างประเทศ

หน้าแรก Shop
(41)

หน้าแรกของ Shop