JQuery:$ .get不是一个函数
我在jQuery中做一些非常基本的操作时遇到了问题。 有人能告诉我,我做错了什么吗?
如果我运行下面的代码,函数$ .get似乎丢失了(getJSON和其他人也丢失了)。 但是$本身和其他函数确实存在,所以我知道JQuery正在加载。
google.load("jquery", "1.3.2"); function _validate(form, rules_file) { $.get('/validation_rules.json',function(data) { alert("hello") }) }
任何想法将不胜感激。
谢谢,罗布
编辑:这里有一些额外的信息:
google.load("prototype", "1.6"); google.load("scriptaculous", "1.8"); google.load("jquery", "1.3.2"); jQuery.noConflict(); // prevent conflicts with prototype
您拥有的$
变量来自Prototype-js,因为您使用的是jQuery.noConflict
方法。
该方法将$
variable恢复为首先实现它的库。
您应该直接在jQuery
全局对象上使用jQuery方法,例如:
jQuery.get(/* .. */); jQuery.getJSON(/* .. */); // etc...
或者,如果需要,您可以将另一个较短的变量定义为别名:
var $j = jQuery.noConflict();
如果您使用SLIM版本的jQuery,也会发生这种情况。
给我
>jQuery.get :undefined >jQuery.get() :VM7130:1 Uncaught TypeError: jQuery.get is not a function at :1:8
在没有slim选项的情况下加载相同的库
效果很好
jQuery.get():Object {readyState:1}
如果指定jQuery.noConflict(),则jQuery不再提供$。 请改用jQuery.get。
您还可以将jQuery函数包装在一个闭包中,并将jQuery作为“$”符号传递,例如:
(function($) { function _validate(form, rules_file) { $.get('/validation_rules.json',function(data) { alert("hello") }) } })(jQuery)