繁体   English   中英

用户单击链接时运行javascript函数

[英]run javascript functions when user clicks link

我只希望点击链接时触发此代码

<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文件(文件名: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文件中调用sizeScrollbar时,我试图在scroll.js文件之外调用它。

问题在于,scroll.js是在闭包($(function(){});)中声明的。 如果要使在闭包内部声明的所有内容可用,则必须在闭包末尾返回一些内容。 这意味着您可能想要返回一个包含函数的对象:

// scroll.js
var scroll = (function() {

   // code       

   function sizeScrollbar() {};

   // code

   return {
      'sizeScrollbar' : sizeScrollbar
   }

})();

然后在main.js中,您可以这样调用sizeScrollbar:

scroll.sizeScrollbar();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM