如何修复“Uncaught TypeError:$(”。flexNav“)。flexNav()不是函数?

时间:2017-06-20 21:35:56

标签: javascript jquery flexnav

我在使用此对象初始化flexNav的自定义文件中收到“Uncaught TypeError”:

function setupFlexnav() {
// flexnav setup and options
//var isIE = false || !!document.documentMode;
//if (!isIE) {
    $(".flexnav").flexNav({
    'animationSpeed': 0,
    'transitionOpacity': false,
    'buttonSelector': '.menu-button',
    'hoverIntent': true,
    'hoverIntentTimeout': 100,
    'calcItemWidths': false,
    'hover': true
});
//}

//other custom code follows, but error is thrown on $(".flexnav").flexNav
}
//initialize flexnav
$document.ready(function () {
    setupFlexnav();
});

'setupFlexNav()'方法在此文件的其他地方调用,并包含在$ document.ready(){...}中,这将阻止flexNav()被调用,直到加载jQuery。 BundleConfig在我的jquery.flexnav-custom.js脚本之前加载了jQuery-1.10.2.js,但是在这两个文件之后加载了一个jQuery-1.11.3.js文件。

我想知道是否在同一页面上加载2个版本的jQuery会导致抛出“Uncaught TypeError”,但此代码在源代码管理中已保持6个月不变。直到今天我还没有得到这个flexNav()错误,所以除了flexnav的初始化之外,其他东西必须导致错误。我只是不知道有什么。什么会导致我的代码开始抛出此错误?谢谢!

1 个答案:

答案 0 :(得分:0)

在再次查看我的代码之后,我意识到我的脚本的顺序确实导致了问题。在jquery.flexnav-custom.js之前加载了旧版本的jQuery(1.10.2),这很好,但是在这些脚本之后加载了新版本(1.11.3)。我省略了旧文件,在flexnav脚本之前加载了较新的文件,并重建了项目。错误消失了。