प्रोटोटाइप और JQuery के $ समारोह को एकजुट

वोट
-1

वहाँ किसी भी जावास्क्रिप्ट समारोह है कि दोनों प्रोटोटाइप और jQuery से $ समारोह को एकजुट कर सकते हैं?

हाँ, यह असली उपयोग के मामले अब मैं का सामना करना पड़ रहा है। मैं प्रोटोटाइप में $ समारोह और $ jQuery में एक दूसरे के परस्पर विरोधी है पाते हैं। मुझे पता है कि हम हमारे jQuery.noConflict () $ वापस प्रोटोटाइप को ressign, हालांकि ऐसा करके, मैं jQuery विशेष javacript कोड एक कोड ब्लॉक (जैसे में है कि $ फ़ंक्शन का उपयोग करें, या है कि jQuery विशिष्ट पुनर्लेखन करना होगा सकता है। गुमनाम समारोह)।

वहाँ एक पेज में दोनों पुस्तकालय में मौजूदा कोड को फिर से लिखने और उन्हें बिना किसी भी आसान तरीका है?

कोड है कि इस सवाल का जवाब हो सकता है इस तरह लग सकते हैं, और आपकी प्रतिक्रिया बहुत सराहना की है:

<script type=text/javascript src=/path/to/prototype.js></script>
<script type=text/javascript src=/path/to/jquery.js></script>
<script type=text/javascript>
/* <![CDATA[ */
var $j = jQuery.noConflict();
var $p = $; // reference to prototype's $
var $ = function(E, F){
  var isJQuery = true;

  //TODO: logic to determine which $ to use here YOUR SUGGESTION HERE ;-)

  var result = null;
  if(isJQuery){
    result = $j(E, F);
  } else { // prototype
    //TODO: code to delegate prototype $
  }

  return result;
}
/* ]]>*/
</script>

// ... any existing javacode jQuery and Prototype using $ function. 

धन्यवाद।

अद्यतन : पुनर्लेखन प्रश्न और अधिक स्पष्ट किया जाना है।

20/04/2009 को 04:15
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
5

ठीक है, सब से पहले, मैं शायद ही कभी उपयोगी मामलों में जहां पुस्तकालयों में से दोनों एक ही पेज में शामिल किया जाना है पा सकते हैं। तो अगर आप एक को दूर करने पर विचार करें।
मुझे लगता है कि है कि यह एक प्लग में उपयोग की वजह से है, लेकिन प्रतिद्वंद्वी प्लग में सूची पर एक नजर है, मैं काफी यकीन है कि एक विकल्प है कि वहाँ हूँ।

दूसरा, अपने jQuery विशिष्ट कोड के लिए, यह काफी आसान है के पुनर्लेखन के लिए, अनाम समारोह चाल का उपयोग कर रहा है:

(function($){
  ... your code here ...
})(jQuery);

यह अधिकांश मामलों में काम करते हैं जहाँ आप उन्हें घटनाओं के लिए बाध्य करने के बजाय वैश्विक चर या तरीकों डाल नहीं होगा।

20/04/2009 को 04:40
का स्रोत उपयोगकर्ता

वोट
2

मैं हमेशा एक समारोह, Gizmo के उदाहरण की तरह में अपने सभी jQuery कोड डालने की आदत में मिल गया है:

jQuery(function($) {
    // jQuery code here, using $
});

इस document.ready ईवेंट हैंडलर के समान है।

20/04/2009 को 04:43
का स्रोत उपयोगकर्ता

वोट
0

jQuery सुनिश्चित करने के बारे में महान हो गया है वे प्रोटोटाइप के साथ अच्छी तरह खेलते हैं। जानकारी के लिए इस पेज की जाँच करें, अन्य पुस्तकालय के साथ टकराव से बचना

मैं पहले की तरह ही पृष्ठों में इस्तेमाल दोनों पुस्तकालयों को देखा है और यह आम तौर पर है कि अपने पृष्ठों है कि एक पुस्तकालय का उपयोग करते हुए अपने पृष्ठों अन्य का उपयोग कर रहे हैं किसी तृतीय पक्ष ऐप्स के कारण है। हालांकि, अगर आप सभी विकास अपने आप कर रहे हैं, मैं एक या दूसरे के साथ चिपके हुए सुझाव देते हैं।

20/04/2009 को 12:41
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more