不要问我为什么,但是我委托的开发人员使用JQuery 1.4.4在页面上设置了几个函数,我正在尝试将JQuery版本更新为2.1.1。这样做,我得到了一些处理滚动的JS错误,即:
$(document).ready(function(){
var scroll_pos = 0;
$(document).scroll(function() {
scroll_pos = $(this).scrollTop();
var hrt = $('.boxBg').offset().top-200;
if(scroll_pos > hrt) {
$('i.fa-heart').addClass('individual-heart-hover');
}
else{
$('i.fa-heart').removeClass('individual-heart-hover');
}
});
});
和
var _rys = jQuery.noConflict();
_rys("document").ready(function () {
_rys(window).scroll(function () {
if (_rys(this).scrollTop() >100) {
_rys('.navbar').addClass("f-nav");
_rys('.discoverSection').addClass("f-nav2");
$('.tabsection').css('display','block');
} else {
_rys('.navbar').removeClass("f-nav");
_rys('.discoverSection').removeClass("f-nav2");
$('.tabsection').css('display','none');
}
});
});
接收错误的行是:
$(document).ready(function(){
和
$('.tabsection').css('display','block');
两者都收到错误说" Uncaught TypeError:undefined不是函数"。
奇怪的是,这些都可以与JQuery 1.4.4完美配合。
答案 0 :(得分:0)
这一行很可疑:
var _rys = jQuery.noConflict();
该代码删除 $
的定义,因此任何使用$
的后续代码都将失败。
如果您需要同时加载两个不同版本的jQuery,或者如果您使用另一个定义jQuery.noConflict()
的库来表示其他内容,则应该只使用$
。 (.noConflict()
实际上恢复了$
之前的任何定义,但是从您收到的错误看来,之前没有$
。)
假设您没有处理其中一种特殊情况,只需完全删除noConflict
行,然后将_rys
的每个实例更改为$
。