这段代码;
$(function () {
var tabContainers = $('div.tabs > div');
tabContainers.hide().filter(':first').show();
$('div.tabs ul.tabSelect a').click(function () {
tabContainers.hide();
tabContainers.filter(this.hash).fadeIn('slow');
$('div.tabs ul.tabSelect a').removeClass('selected');
$(this).addClass('selected');
return false;
}).filter(':first').click();
});
在jQuery 1.5中工作得很好但是在jQuery 1.10(或1.8)中抛出“类型错误$不是函数”错误
我在这里缺少什么?这不是第一次出现迁移上帝到后来的jQuery版本。
window.jQuery(function () {
var tabContainers = window.jQuery('div.tabs > div');
tabContainers.hide().filter(':first').show();
window.jQuery('div.tabs ul.tabSelect a').click(function () {
tabContainers.hide();
tabContainers.filter(this.hash).fadeIn('slow');
window.jQuery('div.tabs ul.tabSelect a').removeClass('selected');
window.jQuery(this).addClass('selected');
return false;
}).filter(':first').click();
});
这很好用。没有其他库,只有两个电话
一
<script type='text/javascript' src='http://localhost:8888/wordpress/wp-includes/js/jquery/jquery.js'></script>
是1.10.1并抛出错误
`<script type='text/javascript' src='http://localhost:8888/wordpress/wp-includes/js/jquery/jquery-1.5.1.min.js'></script>`
不
这是我的问题。如果你不理解它不回答它并且不给我减去声誉,因为你不能费心阅读我的帖子。
答案 0 :(得分:1)
此错误不是来自jQuery的升级,因为$
在当前版本中仍然可用。
检查你不要忘记包含jQuery,文件路径是正常的(使用浏览器的javascript控制台,可通过F12键访问),并且你没有包含jQuery两次(旧版本和新版本一起使用)。
另一个问题可能是代码中某处有jQuery.noConflict();
调用。此功能旨在防止不同版本之间的冲突。例如,您可以执行$my_jquery = jQuery.noConflict();
,然后以$my_jquery('my_selector')...
答案 1 :(得分:1)
您错误地加载了库:
和/或你正在加载第二个库,它取代了$ global,即Prototype。或者,您已重新分配$ global。
或者您只是使用来自网站的剪切+粘贴代码,并且您复制了一个实际上不是$
的类似外观字符,并且计算机不会将其视为此类。
这是你解决这个问题的唯一方法。
答案 2 :(得分:0)
来自jQuery文档。完整而彻底的解决问题。
别名jQuery命名空间
使用其他JavaScript库时,我们可能希望调用$ .noConflict()以避免名称空间困难。调用此函数时,$快捷方式不再可用,每次我们通常写$时都会强制我们编写jQuery。但是,传递给.ready()方法的处理程序可以接受一个参数,该参数传递给全局jQuery对象。这意味着我们可以在.ready()处理程序的上下文中重命名对象,而不会影响其他代码:
jQuery( document ).ready(function( $ ) {
// Code using $ as usual goes here.
});