2009-12-24 31 views
16

मुझे jQuery में बहुत कुछ मूलभूत समस्या है। क्या कोई मुझे बता सकता है कि मैं वास्तव में क्या गलत कर रहा हूं?

यदि मैं नीचे दिया गया कोड चलाता हूं, तो फ़ंक्शन $ .get गुम हो रहा है (getJSON और अन्य भी गायब हैं)। लेकिन $ खुद और अन्य कार्य मौजूद हैं, इसलिए मुझे पता है कि JQuery लोड हो रहा है।

google.load("jquery", "1.3.2"); 

function _validate(form, rules_file) { 
    $.get('/validation_rules.json',function(data) { 
    alert("hello") 
    }) 
} 

किसी भी विचार की बहुत सराहना की जाएगी।

धन्यवाद, रोब

संपादित करें:

<script src="http://www.google.com/jsapi"></script> 
    <script> 
    google.load("prototype", "1.6"); 
    google.load("scriptaculous", "1.8"); 
    google.load("jquery", "1.3.2"); 
    </script> 
    <script> 
    jQuery.noConflict(); // prevent conflicts with prototype 
    </script> 
    <script src="/livepipe/src/livepipe.js" 
      type="text/javascript"></script> 
    <script src="/livepipe/src/window.js" 
      type="text/javascript"></script> 
    <script src="/livepipe/src/tabs.js" 
      type="text/javascript"></script> 
    <script src="/jquery.maskedinput-1.2.2.js" 
     type="text/javascript"></script> 

उत्तर

15

$ वैरिएबल आपके पास प्रोटोटाइप-जेएस से है, क्योंकि आप jQuery.noConflict विधि का उपयोग कर रहे हैं।

वह विधि $ वैरिएबल को वापस ले जायेगी जो भी लाइब्रेरी पहले इसे लागू करती है।

आप सीधे jQuery वैश्विक वस्तु पर jQuery तरीकों का उपयोग करना चाहिए, जैसे .:

jQuery.get(/* .. */); 
jQuery.getJSON(/* .. */); 
// etc... 

या यदि आप चाहते हैं आप उपनाम के रूप में एक और कम चर को परिभाषित कर सकते हैं:

var $j = jQuery.noConflict(); 
2

आप jQuery.noConflict() निर्दिष्ट करते हैं, तो $ अब उपलब्ध नहीं jQuery से है: यहाँ कुछ अतिरिक्त जानकारी है। इसके बजाय jQuery.get का उपयोग करें।

2

आप भी कर सकते हैं अपने jQuery कार्यों को एक बंद में लपेटें और jQuery में "$" चिह्न के रूप में पास करें, उदाहरण के लिए:

(function($) { 
    function _validate(form, rules_file) { 
     $.get('/validation_rules.json',function(data) { 
     alert("hello") 
     }) 
    } 
})(jQuery) 
38

यह भी होगा, अगर आप jQuery के SLIM संस्करण का उपयोग करते हैं।

<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script> 

मुझे

>jQuery.get 
:undefined 
>jQuery.get() 
:VM7130:1 Uncaught TypeError: jQuery.get is not a function 
    at <anonymous>:1:8 

दिया जबकि

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 

काम करता है अच्छी तरह से

jQuery.get() स्लिम विकल्प के बिना ही पुस्तकालय लोड हो रहा है: ऑब्जेक्ट {readyState: 1}

+1

JQuery वेबसाइट पर मूल उपयोग उदाहरण jquery-x.x.x.slim.min.js का उपयोग करने के लिए कहता है और स्पष्ट रूप से यह AJAX कॉल के लिए काम नहीं करता है। धन्यवाद! – bcarroll

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