我试图从另一个脚本调用一个脚本中的全局函数。
这是第一个名为subpage.js
的脚本:
$(document).ready(function(){
shopButtons();
//hide store buttons in alex box on subpages
if (window.location.pathname.includes('/subpage')) {
$('.js-alex-box-store-buttons').hide();
var element = window.location.hash.substr(1);
scrollToElement('#' + element);
}
});
这是另一个名为subpage-scroll.js
的脚本:
function scrollToElement(element) {
if($(element) && $(element).offset()) {
$('html,body').animate({
scrollTop: $(element).offset().top - 80
});
}
}
$( '.anchor-links' ).click(function() {
var element = $(this).attr('id').split('-');
if (element[0] == 'download') {
$("html, body").animate({ scrollTop: 0 });
}
else {
scrollToElement('#' + element[0]);
}
});
我按顺序将所有脚本捆绑到一个app.js
脚本中:
require('./subpage-scroll');
require('./subpage');
但是当我导航到subpage
时出现错误:
get Uncaught ReferenceError:未定义scrollToElement
当我将函数声明为全局函数时,为什么会得到函数?我需要函数在我使用它的脚本之前的脚本?
更新
我尝试过制作新文件scroll-to-element.js
:
exports.scrollToElement = function(element) {
if($(element) && $(element).offset()) {
$('html,body').animate({
scrollTop: $(element).offset().top - 80
});
}
}
然后我从scrollToElement
删除了subpage.scroll.js
函数,只需在subpage.js
和subpage.scroll.js
中通过添加脚本顶部来添加它:
var scrollToElement = require('./scroll-to-element');
然后我使用的功能是:scrollToElement.scrollToElement()