Подтвердить что ты не робот

JQuery: $.get не является функцией

У меня проблема с чем-то очень простым в jQuery. Может ли кто-нибудь сказать мне, что я делаю неправильно?

Если я запустил код ниже, функция $.get, кажется, отсутствует (getJSON и другие тоже отсутствуют). Но $self и другие функции существуют, поэтому я знаю, что JQuery загружается.

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

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

Любые идеи будут высоко оценены.

Спасибо, Rob

Изменить: вот дополнительная информация:

  <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>
4b9b3361

Ответ 1

Переменная $ у вас есть от Prototype-js, потому что вы используете метод jQuery.noConflict.

Этот метод вернет переменную $ обратно в любую библиотеку, которая впервые реализовала ее.

Вы должны использовать методы jQuery для глобального объекта jQuery, например:

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

Или вы можете определить другую более короткую переменную как псевдоним, если хотите:

var $j = jQuery.noConflict();

Ответ 2

Это также произойдет, если вы используете версию 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

при загрузке одной и той же библиотеки без опции slim

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

хорошо работает

jQuery.get()     : Object {readyState: 1}

Ответ 3

Вы также можете обернуть ваши функции jQuery в закрытие и передать jQuery в качестве знака "$", например:

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

Ответ 4

Если вы укажете jQuery.noConflict(), то $больше не доступно из jQuery. Вместо этого используйте jQuery.get.

Ответ 5

Вообще говоря, если у вас $.get is not a function ошибкой $.get is not a function убедитесь, что вы не используете тонкую версию jQuery, исходящую из оригинального импорта Bootstrap.