2010-06-27 12 views
10

मैं सोनी टोनका के मेगा ड्रॉप डाउन डब्ल्यू/सीएसएस & से प्रेरित एक मेगा ड्रॉप डाउन मेनू सिस्टम के लिए एक jQuery hoverIntent.js स्क्रिप्ट का उपयोग कर रहा हूं jQuery sohtanaka.com/web-design/mega-drop-downs-w -css-jQuery। मेरे पृष्ठ में एक प्रोटोटाइप.जेएस स्क्रिप्ट शामिल है जो किसी तृतीय पक्ष आपूर्तिकर्ता द्वारा डाली गई है (यह एक रियल एस्टेट वेबसाइट है जो संपत्ति खोज और लीड प्रबंधन सामग्री लोड करती है)। यह टैग से ठीक पहले ही लोड होता है। मेरी मेनू स्क्रिप्ट और jQuery कॉल टैग के शीर्ष पर लोड की जाती हैं। नीचे मैंने 2 लिंक शामिल किए हैं। पहला लिंक मैंने प्रोटोटाइप.जेएस को कॉल किया है और मेनू ठीक काम करता है। दूसरे लिंक में prototype.js को कॉल है और ड्रॉप डाउन काम नहीं करता है।jQuery/प्रोटोटाइप संघर्ष

  1. कार्य ड्रॉप डाउन: http://www.myreoforeclosures.com/_menutestfromcode.html (prototype.js बाहर टिप्पणी की)

  2. काम नहीं कर ड्रॉप डाउन: http://www.myreoforeclosures.com/_menutestfromcode2.html

मैं कई रूपों की कोशिश की है (कार्य prototype.js के साथ) jQuery वेबसाइट पर सुझाए गए jQuery noConflict() संकल्पों का, लेकिन मेरे जीवन के लिए, मैं संघर्ष को हल नहीं कर सकता। मैंने ऊपर दिए गए लिंक को सीएसएस और एचटीएमएल की मूलभूत बातें को ड्रॉप डाउन का परीक्षण करने के लिए घटा दिया है।

कृपया ध्यान दें कि मैं वेब 2.0/सीएसएस/jQuery के साथ एक सीधी सीखने की वक्र पर चढ़ रहा हूं क्योंकि यह मेरा पहला प्रयास है जो इन उपकरणों का उपयोग कर वेबसाइट तैयार कर रहा है (पहले तालिका आधारित वेबसाइट बनाम)।

jQuery और प्रोटोटाइप को एक साथ काम करने के लिए कोई भी मदद की सराहना की जाएगी। मेरे पास केवल jQuery स्क्रिप्ट का नियंत्रण है इसलिए jQuery पर किसी भी रिज़ॉल्यूशन को किया जाना है। मेरे पास prototype.js पर कोई नियंत्रण नहीं है।

+1

मदद के लिए धन्यवाद। मैंने इस मुद्दे के समाधान की तलाश में कई घंटे बिताए हैं। यह पहली जगह है जहां मुझे पता चला है कि मुझे लोगों से "पता" में लोगों द्वारा गुणवत्ता की सहायता मिल रही है। अन्य वेबसाइटें यहां मिली जानकारी को पुन: स्थापित करने लगती हैं: http://api.jquery.com/jQuery.noConflict/और यहां: http://docs.jquery.com/Using_jQuery_with_Other_ लाइब्रेरीज़। मैंने ड्रॉप डाउन मेनू के निर्माता और होवरइन्टेंट प्लगइन के निर्माता से भी संपर्क किया है लेकिन दोनों कहते हैं कि वे मदद करने में बहुत व्यस्त हैं। मदद के लिए एक बार फिर से धन्यवाद। माइक –

+0

डुनो मैंने इससे पहले क्यों नहीं सोचा था, लेकिन मुझे यह फ़ायरफ़ॉक्स के त्रुटि कंसोल में मिला: त्रुटि: अमान्य सरणी लंबाई स्रोत फ़ाइल: http://www.myreoforeclosures.idxco.com/javascript/prototype.js रेखा : 30 –

+0

मैं उल्लेख करना भूल गया था, कि त्रुटि प्रोटोटाइप का उपयोग कर रहे किसी समस्या w/कुछ को इंगित करती है, जरूरी नहीं कि jQuery के साथ एक संघर्ष हो। यह एक मुद्दा w/प्रोटोटाइप लाइब्रेरी भी हो सकता है (शायद एक बग, आपकी प्रतिलिपि के साथ समस्या), हालांकि इसकी संभावना कम है। –

उत्तर

0

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

उपयोग jQuery.noConflict() विधि।

ग्रज़, क्रिस।

+0

प्रश्न से: * "मैंने jQuery वेबसाइट" * – user113716

+0

पर सुझाए गए jQuery नोकोनफ्लिक्ट() संकल्पों के कई बदलावों की कोशिश की है, शायद शायद मैंने सुझाव नहीं दिया है। चूंकि वह इसका जिक्र नहीं करता है, हम निश्चित नहीं हो सकते हैं इसलिए मुझे लगता है कि मेरा जवाब अभी भी वैध है। – XIII

+1

मेरा मुद्दा यह है कि आपने कुछ भी उपयोगी नहीं जोड़ा है क्योंकि ओपी को 'नो कॉन्फ्लिक्ट()' के बारे में पता है और इसे काम पर नहीं लाया जा सकता है। और आपने वास्तव में 'नो कॉन्फ्लिक्ट()' रिज़ॉल्यूशन का सुझाव नहीं दिया था। आपने अभी इसका इस्तेमाल करने के लिए कहा है। – user113716

1

मुझे लगता है कि आप jQuery के पुराने संस्करण का उपयोग कर रहे हैं। आपके पास 1.4.2 के बजाय 1.3.2 है।

सुनिश्चित नहीं है कि इससे कोई फर्क पड़ता है, लेकिन शायद नवीनतम रिलीज़ का प्रयास करें।

आप Google की CDN से सीधे लिंक कर सकते हैं:

http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

+0

अब मैं काम करता हूं दोनों पृष्ठ पर 1.4.2 का उपयोग कर रहा हूं (prototype.js टिप्पणी की गई) और वह पृष्ठ जो काम नहीं करता है (prototype.js लिंक)। कोई भाग्य नहीं। –

+0

@ माइक - ठीक है, आपका बाकी jQuery बिना त्रुटि के चल रहा है, इसलिए शायद यह विशेष रूप से कोई कॉन्फ्लिक्ट समस्या नहीं है। साथ ही, त्रुटि तब होती है जब आपका 'मेगाहोवर ओवर' और 'मेगाहोवरऑट' कॉलबैक चलाया जाता है। तो मुझे एहसास है कि होवरइन्टेंट प्लगइन के साथ इसका कोई लेना-देना नहीं है। बस सत्यापित करने के लिए, क्या आप होवरइन्टेंट कॉन्फ़िगरेशन को हटा सकते हैं ताकि यह सिर्फ jQuery के साथ चलता है ताकि हम इसे खत्म कर सकें? – user113716

+0

@patrick - दोनों संस्करणों में होवरइन्टेंट टिप्पणी की गई- http://www.myreoforeclosures.com/_menutestfromcode-noHI।एचटीएमएल http://www.myreoforeclosures.com/_menutestfromcode2-noHI.html हटाने से उन्हें दोनों को मार दिया जाता है - जिसमें एक w/prototype.js टिप्पणी की गई है। -बीटीडब्ल्यू मदद की सराहना करते हैं। –

0

मेनू दोनों URL में मेरे लिए काम करने लगता है। (फ़ायरफ़ॉक्स 3.6.4)

संपादित करें: वे मेरे लिए काम करते प्रतीत होते हैं, क्योंकि मेरा पसंदीदा ब्राउज़र फ़ायरफ़ॉक्स नोस्क्रिप्ट के साथ है। मैंने नोटिस नहीं किया कि प्रोटोटाइप लाइब्रेरी एक अलग डोमेन से आई है। =/

/headdesk

+0

इसे देखने के लिए धन्यवाद। दोनों लिंक एक ड्रॉप डाउन मेनू उत्पन्न करते हैं? मुझे यह पता है काम करता है: http://www.myreoforeclosures.com/_menutestfromcode.html क्योंकि prototype.js पर कोई कॉल नहीं है लेकिन यह संस्करण ड्रॉप डाउन मेनू का उत्पादन नहीं करता है http://www.myreoforeclosures.com/_menutestfromcode.html के कारण prototype.js के साथ संघर्ष। –

+0

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

3

मुझे लगता है कि कारण jQuery.noConflict() काम नहीं करता है कि मेनू कोड $ उपयोग करने के लिए jQuery कार्यात्मकता की ओर इशारा करने के लिए जारी है। jQuery से वैश्विक नाम को अनदेखा करना है।

यदि आपके पास कोई ऐसा कोड है जो $ से "jQuery" का अर्थ है, तो इसे बदले में jQuery का उपयोग करने के लिए बदला जाना चाहिए।अन्यथा, यह प्रोटोटाइप $ उठाएगा जो निश्चित रूप से एक बहुत ही अलग बात है।

संपादित — ठीक मैं अंत में लोड करने के लिए अपने पृष्ठ मिला (मुझे लगता है कि मेरे नेटवर्क मुद्दों कर रहा था), इसलिए मुझे लगता है कि आप उपयोग कर रहे "$ जे" सुंदर लगातार देखते हैं। इस प्रकार मुझे नहीं लगता कि मेनू कोड में $ समस्या एक समस्या है, लेकिन मैं यहां टिप्पणी छोड़ दूंगा क्योंकि यह अभी भी सच है कि noConflict() जादू नहीं है।

फिर से संपादित करें — मैं प्रोटोटाइप 1.4.2 का प्रयास करने के लिए पैट्रिक के सुझाव के साथ जाऊंगा।

+0

हाँ मैं देखता हूं कि अब धन्यवाद @ पैट्रिक! – Pointy

+0

प्वाइंट - क्षमा करें, आपने अपना उत्तर अपडेट करने के बाद मेरी टिप्पणी हटा दी। ; ओ) – user113716

+0

हे @ पैट्रिक: क्या आपने देखा है कि पृष्ठ पर होने वाली त्रुटि तब होती है जब jQuery में कुछ कुछ "संभवतः एक सरणी" पर "शिफ्ट()" कहता है, और उसके बाद प्रोटोटाइप में एक हॉप का कारण बनता है एक देशी विधि के ओवरराइड? मैं शर्त लगाता हूं कि समस्या क्या है; यह मूल रूप से लाइब्रेरी के "प्रोटोटाइप-प्रूफिंग" में एक jQuery 1.3.2 बग है। – Pointy

0

यदि वह मेनू प्रोटोटाइप का उपयोग नहीं करता है, तो आप $ वैरिएबल को एक नए ब्लॉक में jQuery (एक स्वयं निष्पादित अज्ञात फ़ंक्शन के माध्यम से) को फिर से परिभाषित कर सकते हैं।

(function ($) { 
    // do stuff as usual 
})(jQuery); 
+0

मेनू केवल jQuery का उपयोग करता है –

1

मुझे बिल्कुल वही समस्या थी! मैं 'rangeError: अवैध सरणी लंबाई' के साथ, jq 1.6.2 और prototype.js का उपयोग कर रहा हूं।

मैंने लगभग तब तक इसे छोड़ दिया जब तक कि मैंने प्रोटोटाइप की Google की सीडीएन प्रतिलिपि का उपयोग नहीं किया, और सब अच्छा है। मुझे लगता है कि अब क्या मुद्दा था कि हल किया गया था।

संबंधित मुद्दे