Jquery TypeError:$(…)。上不是函数
我正在使用。添加JS和CSS文件后,我得到了以下错误类型错误:Jquery TypeError:$(…)。上不是函数,jquery,cakephp-1.3,lightbox,Jquery,Cakephp 1.3,Lightbox,我正在使用。添加JS和CSS文件后,我得到了以下错误类型错误: $(...).on is not a function at this line in js file "return $('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox]', function(e) {" 有人能帮我理解这里的问题吗 我正在CakePHP1.
$(...).on is not a function at this line in js file
"return $('body').on('click',
'a[rel^=lightbox], area[rel^=lightbox]', function(e) {"
有人能帮我理解这里的问题吗
我正在CakePHP1.3中实现这个功能 这通常是因为您也在使用Prototype、MooTools或其他一些使用
$
符号的库,并且您在jQuery之后包含该库,因此该库是“赢家”(将$
作为自己的一部分)。因此,$
的返回值不是jQuery实例,因此它没有jQuery方法(如上的)
您可以将jQuery与其他库一起使用,但如果使用,则必须使用jQuery
符号,而不是其别名$
,例如:
jQuery('body').on(...);
通常最好是在包含jQuery的脚本标记之后,在包含另一个库的标记之前立即添加:
<script>jQuery.noConflict();</script>
jQuery.noConflict();
…尽管如果在jQuery之后加载另一个库(如果先加载另一个库),这不是必需的
但是,仅就页面重量而言,在同一页面上使用多个全功能DOM操纵库并不理想。因此,如果你能坚持使用Prototype/MooTools/随便什么,或者只使用jQuery,那通常会更好。问题可能是如果你使用的是较旧版本的jQuery。因为较旧版本的jQuery使用“live”方法而不是“on”在我的例子中,通过将我的jQuery封装在:
(function($) {
//my jquery
})(jQuery);
如果您使用的是jQuery的旧版本(<1.7),那么可以使用“bind”而不是“on”。这只在您使用旧版本的情况下有效,因为从jQuery 3.0开始,“bind”已被弃用。我尝试了Oskar(以及许多其他)的解决方案,但对我来说,它最终只适用于:
jQuery(function($){
// Your jQuery code here, using the $
});
请参阅:在我的情况下,此代码解决了我的错误:
(function (window, document, $) {
'use strict';
var $html = $('html');
$('input[name="myiCheck"]').on('ifClicked', function (event) {
alert("You clicked " + this.value);
});
})(window, document, jQuery);
你不应该把你的函数放进去
$(document).ready您确实包含了jQuery 1.7版或更高版本,并且将代码包装到了document.ready对吗?是的,我已经添加了jQuery 1.7,我还没有为lightbox实现任何代码,如果我只添加js和css文件,我得到了这个error@user1613870:那么你是说你引用的代码不是你的?那么,它来自哪里?@Crowder该代码来自lightbox.js,我正在使用的库,在这一行我是get errorCrowder,感谢您的指导,我没有在jquery之前添加任何库,所有库都是在jquery库之后添加的。我正在使用这种技术和@user1613870:正如我所说的,如果您在jQuery之后包含另一个库(如Prototype或MooTools),您将遇到这个问题。(如果你以前把它们放进去就不会了;如果你以前放过,你会有不同的问题。)你是在使用原型还是MooTools?noConflict对我没有任何帮助。。。但是jQuery('body')。在(…)上;解决了这个问题。。。谢谢我现在就知道了:)你能解释一下你所说的“我的jQuery”是什么意思吗?你的意思是jqueryversion x.x.x
还是jQuery cycle.all
还是你正在编写的脚本?我想他指的是脚本,是的,围绕该函数封装我的脚本实际上解决了我的问题。在我的场景中,你是一个传奇。非常感谢。