views:

276

answers:

2

Hi,

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"&gt;&lt;/script&gt;
  <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>
+1  A: 

If you specify jQuery.noConflict(), then $ is no longer available from jQuery. use jQuery.get instead.

Chandra Patni
+1 for conciseness.
micahwittman
+7  A: 

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();
CMS