मैं नवीनतम संस्करण को डाउनलोड करने के लिए jQuery को कैसे अपडेट कर सकता हूं?


33

मैं Drupal 7 का उपयोग कर रहा हूं, जो डिफ़ॉल्ट रूप में jQuery 1.4 का उपयोग करता है? मैं इसे नवीनतम संस्करण (वर्तमान में 1.7) में कैसे अपडेट कर सकता हूं?


1
मैं मॉड्यूल का उपयोग नहीं करना चाहता, मैनुअल करना चाहता हूं।
कर्मकोमा

Drupal में मैन्युअल रूप से jQuery को अपग्रेड करना सबसे अनुभवी Drupal Developers के लिए भी बहुत जटिल और जोखिम भरा होगा। आपको क्लाइव की सलाह लेनी चाहिए और jQuery अपडेट का उपयोग करना चाहिए।
शीना_ड

मैं ftp के माध्यम से misc-jquery.js फ़ाइल पर जाता हूं और नए jquery कोड को प्रतिस्थापित करता हूं। सही?
कर्मकोमा

जहाँ तक मुझे पता है misc-jquery.js jquery संस्करण की एक ही प्रति नहीं है। हालाँकि, git के अनुसार, drupalcode.org/project/jquery_update.git/tree/refs/heads/… , 1.7 सपोर्ट भी हो सकता है।
आयुष

@ पैट्रिक केनी मुझे लगता है कि यह सही नहीं है - मैं jquery_update का उपयोग करके jquery 1.8 का चयन कर सकता हूं जैसे कि आज
डबल 1ejack

जवाबों:


44

एक तरह से स्थापित करने के लिए है देव संस्करण के jQuery अद्यतन (कम से सेटिंग पृष्ठ पर जाकर जो आप jQuery 1.7 उपयोग करने का विकल्प देता है, http://mysite.com/admin/config/development/jquery_update )।

हालांकि सावधान रहें, वर्तमान में यह साइट में कहीं और जावास्क्रिप्ट को तोड़ने के लिए जाना जाता है (उदाहरण के लिए प्रबंधित फ़ील्ड पृष्ठ पर विजेट ड्रॉपडाउन अब नहीं होगा)। यदि आप इसे ठीक करने के लिए तैयार हैं, और कोई अन्य छोटी झुंझलाहट, तो यह शायद आपका सबसे अच्छा दांव है। आपको यह भी ध्यान देना चाहिए कि मॉड्यूल के देव संस्करण का उपयोग करना जोखिम के बिना नहीं है, क्योंकि इसके होने की संभावना एक विशिष्ट रिलीज का उपयोग करने की तुलना में बहुत अधिक है।

यदि आप इसे मैन्युअल रूप से करना चाहते हैं, तो आपकी साइट को अपेक्षित रूप से कार्य करने के लिए फिर से लिखने के लिए आपके पास बहुत सारे जावास्क्रिप्ट कोड होंगे; jQuery ने संस्करण 1.4 / 1.5 और 1.7 के बीच एक बहुत कुछ बदल दिया है, इसलिए कोर ड्रुपल जावास्क्रिप्ट कोड के बहुत सारे बस इसके साथ काम नहीं करेंगे।

यदि आप jQuery 1.7 के एक संस्करण में बस छोड़ना चाहते हैं, तो आप संभवतः लागू कर सकते हैं hook_js_alter(), कोर jQuery फ़ाइल को परेशान कर सकते हैं , और इसमें अपना खुद का स्थान जोड़ सकते हैं:

function MYMODULE_js_alter(&$js) {
  $path = drupal_get_path('module', 'MYMODULE') . '/path/to/jquery.1.7.js';

  // Copy the current jQuery file settings and change
  $js[$path] = $js['misc/jquery.js'];

  // Update necessary settings
  $js[$path]['version'] = 1.7;
  $js[$path]['data'] = $path;

  // Finally remove the original jQuery
  unset($js['misc/jquery.js']);
}

एक बार जब आप ऐसा कर लेते हैं, तो डेवलपर टूल / फायरबग खोलें और आपको वे सभी बदलाव दिखाई देंगे जो आपको काम करने के लिए बाकी की साइट JS में लाने के लिए करने जा रहे हैं :)

अद्यतन करें

JQuery अद्यतन का नवीनतम संस्करण ( लेखन के समय 7.x-2.3 ) अब आपको jQuery को v1.8 में अपडेट करने की अनुमति देगा। बहुत ही शांत।

JQuery मल्टी मॉड्यूल एक और विकल्प, टिप्पणियों में उनका कहना है कि के लिए Goron करने के लिए धन्यवाद है। जैसा कि वह भी नोट करता है, इस मॉड्यूल की एक स्थिर रिलीज़ है और यह किसी भी मौजूदा जावास्क्रिप्ट को नहीं तोड़ पाएगी।


थैक्स मैन !!! मैं थोड़ी देर के लिए यह देख रहा हूँ! मेरे मामले में मैं बस, तो मैं बस MYTHEME_js_alter और drupal_get_path के लिए MYMODULE_js_alter प्रतिस्थापित विषय प्रति jQuery के एक अलग संस्करण लोड करने के लिए चाहता था ( 'विषय', 'MYTHEME') drupal_get_path ( 'मॉड्यूल', 'MYMODULE') के लिए
victmo

1
खबरदार, Drupal जावास्क्रिप्ट फ़ाइलों के अपने सेट के साथ आता है जो एक पुराने jQuery के साथ काम करने के लिए लिखा है और jQuery 1.7 या 1.8 के साथ गैर-संगत है। नवीनतम jQuery अद्यतन इन के लिए प्रतिस्थापन फ़ाइलें प्रदान करता है।
पियरे ब्यूले

1
आप मॉड्यूल के देव संस्करण की आवश्यकता है, स्थिर संस्करण के लिए 1.7 विकल्प नहीं है
क्लाइव

2
jQuery मल्टी एक अन्य विकल्प है, जिसके लिए देव संस्करण की आवश्यकता नहीं है, और किसी भी जेएस को नहीं तोड़ेंगे। शायद इसे एक विकल्प के रूप में जोड़ें या "एकमात्र तरीका" को हटा दें?
गोरोन

1
@ कॉरन गुड पॉइंट, धन्यवाद। इस जवाब से कुछ शायद अप्रचलित है अब मैं जल्द ही इसे अद्यतन करने की कोशिश करेंगे
क्लाइव

4

आपको jquery मल्टी मॉड्यूल का उपयोग करने पर भी विचार करना चाहिए जो आपको jquery के एक से अधिक संस्करण का उपयोग करने की अनुमति देता है। महान मॉड्यूल, मैं Druapl 7 और 6 के लिए अपनी सभी परियोजनाओं पर इसका उपयोग कर रहा हूं।


2

निम्नलिखित कार्यों से हुक_js_alter प्रलेखन द्वारा प्रेरित । आप इसे अपने विषय के खाके में रख सकते हैं। इसके लिए आवश्यक है कि आप Drupal core के साथ संघर्ष से बचने के लिए एक अलग व्यवस्थापक विषय का उपयोग करें, और यह मानता है कि jquery-1.8.3.min.js विषय के भीतर 'js' नामक फ़ोल्डर में स्थित है (सूट के अनुरूप)।

function [theme_machine_name]_js_alter(&$javascript) {

  $javascript['misc/jquery.js']['data'] = drupal_get_path('theme', '[theme_machine_name]') .
    '/js/jquery-1.8.3.min.js';

  $javascript['misc/jquery.js']['version'] = '1.8.3';

}


एक अलग व्यवस्थापक थीम की आवश्यकता वास्तव में एक समाधान नहीं है, जब तक कि आप उन विषयों की सूची प्रदान नहीं कर सकते हैं जो इस पद्धति के साथ काम करेंगे । मेरा अनुमान है कि यह बहुत, बहुत कम होगा। प्लस उन विषयों बहुत संभावना भी jQuery, जो निश्चित रूप से काफी समस्याओं कि jQuery अद्यतन मॉड्यूल विशेष रूप से ठीक करने के लिए डिजाइन किया गया था करने के लिए नेतृत्व करेंगे उपयोग करने के लिए किया जाएगा
क्लाइव

0

मुझे यकीन नहीं है कि आपका उद्देश्य यहां क्या है, लेकिन जब मुझे कस्टम मॉड्यूल विकास के लिए एक विशिष्ट संस्करण की आवश्यकता थी, तो मैं jQuery.noConflict का उपयोग करके ऐसा करने में सक्षम हूं

यह jquery_update मॉड्यूल की तुलना में कुछ अतिरिक्त काम है (जो ओपी को मन नहीं लगता है), लेकिन इसका मतलब यह है कि आपको इस बारे में चिंता करने की ज़रूरत नहीं है कि क्या आप अपने पूरे ड्रूपल इंस्टॉलेशन को गड़बड़ाने जा रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.