0

我在使用此对象初始化 flexNav 的自定义文件中收到“未捕获的 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 的初始化之外,肯定是其他原因导致了这个错误。我只是不知道那是什么。什么会导致我给定的代码开始抛出这个错误?谢谢!

4

1 回答 1

0

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

于 2017-10-02T14:50:08.040 回答