我只想在点击链接
时触发这段代码<a href="#" id="open">OPEN</a>
$( window ).resize(function() {
resetValue();
sizeScrollbar();
reflowContent();
});
//init scrollbar size
setTimeout( sizeScrollbar, 10 );//safari wants a timeout
所以理论上,我想:
if(open button clicked)
{
$( window ).resize(function() {
resetValue();
sizeScrollbar();
reflowContent();
});
//init scrollbar size
setTimeout( sizeScrollbar, 10 );//safari wants a timeout
}
我知道如何在jquery中执行此操作,但此代码位于页脚中包含的单独的js文件(filename:scroll.js)中。
我试着评论
$( window ).resize(function() {
resetValue();
sizeScrollbar();
reflowContent();
});
//init scrollbar size
setTimeout( sizeScrollbar, 10 );//safari wants a timeout
然后在我的main.js文件中触发它:
$(".open").click(function() {
$( window ).resize(function() {
resetValue();
sizeScrollbar();
reflowContent();
});
//init scrollbar size
setTimeout( sizeScrollbar, 10 );//safari wants a timeout
});
但它给了我一个错误:
未捕获的ReferenceError:未定义sizeScrollbar
我认为这是因为当我在main.js文件中调用它时,我试图在scroll.js文件之外调用sizeScrollbar。
答案 0 :(得分:0)
问题是scroll.js是在一个闭包内声明的($(function(){});)。如果你想要在封闭内部声明的任何东西可用,你必须在封闭的末尾返回一些东西。这意味着您可能希望返回一个包含函数的对象:
// scroll.js
var scroll = (function() {
// code
function sizeScrollbar() {};
// code
return {
'sizeScrollbar' : sizeScrollbar
}
})();
然后在main.js中你可以这样调用sizeScrollbar:
scroll.sizeScrollbar();