JQuery: $.get is not a function
I'm having a problem doing something very basic in jQuery. Can someone tell me what I'm doing wrong exactly?
If I run the code below, the function $.get seems to be missing (getJSON and others missing too). But $ itself and other functions do exist, so I know JQuery is loading.
google.load("jquery", "1.3.2");
function _validate(form, rules_file) {
$.get('/validation_rules.json',function(data) {
alert("hello")
})
}
Any ideas would be much appreciated.
Thanks, Rob
Edit: here is some additional info:
<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>
This will happen, too, if you use the SLIM version of jQuery.
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
gave me
>jQuery.get
:undefined
>jQuery.get()
:VM7130:1 Uncaught TypeError: jQuery.get is not a function
at <anonymous>:1:8
while loading the same library without the slim option
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
works well
jQuery.get() :Object {readyState: 1}
The $
variable you have is from Prototype-js, because you are using the jQuery.noConflict
method.
That method will restore the $
variable back to whichever library first implemented it.
You should use the jQuery methods on the jQuery
global object directly, eg.:
jQuery.get(/* .. */);
jQuery.getJSON(/* .. */);
// etc...
Or you can define another shorter variable as alias if you want:
var $j = jQuery.noConflict();
Generally speaking, when you are having the $.get is not a function
error be sure you are not using the slim version of jQuery coming from Bootstrap original imports.
You can also wrap your jQuery functions in a closure and pass in jQuery as the "$" sign, eg.:
(function($) {
function _validate(form, rules_file) {
$.get('/validation_rules.json',function(data) {
alert("hello")
})
}
})(jQuery)