Drupal 7 & jQuery - เครื่องหมายดอลลาร์


18

หากฉันไม่ได้วางแผนที่จะใช้ไลบรารี JS ใด ๆ นอกเหนือจาก jQuery มีเหตุผลใดที่จะต้องมีการเรียกใช้ jQuery.noConflict () ของ Drupal ซึ่งจะลบ $ $ เป็นนามแฝงสำหรับ jQuery หรือไม่

สมมติว่าไม่จำเป็นต้องลบ $ alias ออกมีวิธีที่ฉันสามารถนำกลับมาใช้ได้โดยไม่ต้องใส่รหัส jQuery ใน (function ($) {... }) หรือไม่

คำตอบ:


11

วิธีแก้ปัญหาของฉันคือ:

ที่ด้านบนของไฟล์ JS แรกที่ฉันรวมไว้ในธีมที่กำหนดเองของฉันฉันแค่ใส่บรรทัดต่อไปนี้:

$ = jQuery;

เสร็จแล้ว :)


ขอบคุณมาก! ฉันพยายามคิดว่าทำไม jQuery จึงถูกกำหนด แต่$ไม่ใช่ เราควรทำให้ข้อมูลโค้ดนั้นเป็นโมดูล: D
CamelBlues

ทำแบบนั้นvar $ = jQuery;
commonpike

6

ไม่คุณไม่สามารถทำได้ (คุณอาจทำได้ แต่ไม่ควรทำ)

บางทีในบางจุดโมดูลของคุณจะถูกใช้ในโครงการอื่นในไซต์อื่นและไซต์นั้นจะใช้ไลบรารี JS อื่น (โปรดจำไว้ว่าโมดูล drupal ทุกอันที่คุณเขียนนั้นเป็น GPL โดยอัตโนมัติและไคลเอ็นต์ของคุณสามารถใช้งานได้ตามที่พวกเขาต้องการ)

มันไม่ซับซ้อนเลยที่จะเพิ่มสองบรรทัดนี้ในไฟล์ js ทุกตัว :)


ฉันเห็นด้วย; เพื่อประโยชน์ในการทำงานร่วมกันจะดีกว่าที่จะไม่ใช้$เป็นนามแฝงสำหรับ jQuery ใน Drupal และมักจะห่อโค้ด JavaScript ใช้ jQuery (function($){…})กับ
kiamlaluno

ณ จุดนี้คงไม่ยากที่จะทำการค้นหาและแทนที่เพื่อเปลี่ยน $ ทั้งหมดเป็น jQuery ในโมดูลของฉัน
maxedison

@maxedison จะเกิดอะไรขึ้นเมื่อคุณผสม PHP กับ JavaScript ใช้เครื่องหมายดอลลาร์ในสตริงข้อความที่จัดการโดย JavaScript หรือไม่

1
คุณไม่สนใจสิ่งที่ผู้ถามคำถามคือ "สมมติ" มันเป็นคำถามที่ถูกต้องและเป็นอุปสรรคโดยเฉพาะอย่างยิ่งเมื่อฝังปลั๊กอินของบุคคลที่สาม - คุณต้องแก้ไขไฟล์เหล่านั้นทั้งหมดเพื่อให้สามารถใช้งานได้โดยไม่ต้องใช้ $ และคุณต้องดำเนินการทุกครั้งที่อัปเดต ค้นหาและแทนที่ไม่ทำงานกับปลั๊กอินที่ซับซ้อนมากขึ้นเนื่องจากอาจต้องการบางสิ่งที่จะเป็นขอบเขตทั่วโลก ต้องมีการแก้ไข tbh
แดง

ฉันพยายามสะสมวลีบนอินเทอร์เน็ต: "ทุกครั้งที่คุณใช้ $ () พระเจ้าจะฆ่าลูกแมว" ได้โปรด - คิดถึงลูกแมว
aendrew

0

นี่อาจเป็นทางออกที่เป็นไปได้หากคุณมักจะใช้โมดูลสำหรับคำถามประเภทนั้น

ดอลลาร์ jQuery

โมดูลนี้ช่วยให้นักพัฒนาสามารถใช้ $ เพื่อเข้าถึงไลบรารี jQuery แทนที่จะต้องเรียก jQuery อย่างชัดเจนหรือใช้การปิดพิเศษใน Drupal 7 สิ่งที่คุณต้องทำคือเปิดใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.