Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模块模式JavaScript-滚动事件不工作_Javascript_Jquery_Html - Fatal编程技术网

模块模式JavaScript-滚动事件不工作

模块模式JavaScript-滚动事件不工作,javascript,jquery,html,Javascript,Jquery,Html,我试图在JS中实现模块模式,但滚动事件没有触发,代码有什么问题,下面的示例 var modBrandHeader=函数${ "严格使用",; var$con; /*一般的*/ var init=函数{ $con=$'.brand header'; 如果!$con.length{ 回来 } }; var scroll=函数scrollTop{ 如果scrollTop>$'.brand页眉'.height{ console.logScroll; }否则{ console.logScroll已删除;

我试图在JS中实现模块模式,但滚动事件没有触发,代码有什么问题,下面的示例

var modBrandHeader=函数${ "严格使用",; var$con; /*一般的*/ var init=函数{ $con=$'.brand header'; 如果!$con.length{ 回来 } }; var scroll=函数scrollTop{ 如果scrollTop>$'.brand页眉'.height{ console.logScroll; }否则{ console.logScroll已删除; } }; 返回{ init:init, 滚动:滚动 }; }jQuery; .品牌标题{ 高度:70像素; 宽度:100%; 浮动:左; 背景色:ddd; 边框底部:1px实心ccc; }
这是页眉这里有几件事是错误的,或者至少是不理想的。首先,您没有将任何内容绑定到scroll事件。似乎您认为当该事件触发时将调用scroll函数,但不会。您需要添加以下内容:

$(document).on("scroll", scroll);
无论如何,在定义了scroll函数之后,您可以将其放置在您想要的位置,但通常建议将其放置在init函数中,并封装在$document.ready块中

接下来,实际上没有任何东西调用init函数,尽管这里没有显示的代码可能会调用它。你需要这样或那样称呼它;它不会自动发生

最后,init函数有一个无意义的if/return块;如果没有$con,您将返回,但无论如何您都会这样做,因为那里没有进一步的功能


最后一个提示:滚动事件通常不受浏览器的速率限制。或者至少,没有达到你可能期望的程度。此事件将引发大量事件,因此,您可能需要为您调用的任何事件添加自己的速率限制。如果不这样做,性能可能会下降,尤其是在较长的页面上。

除了加载函数,您永远不会要求代码执行任何操作。用你的话来说,你认为是什么导致滚动事件触发。我相信滚动页面时滚动事件应该触发,因为我用init重新滚动页面时滚动事件肯定会在你滚动页面时触发…但这与你的代码无关。您应该研究函数和事件侦听器之间的区别。这里所有的功能都没有事件侦听器。祝你好运