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>
Ответы
Ответ 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.