$(window).load OR $(window).scroll在同一个函数中?
我在网站上实现了stickyfloat(http://plugins.jquery.com/files/stickyfloat_0.htm)。 它很好用一个问题。 该函数在$(window).scroll
上触发,而不在$(window).load
$(window).scroll
上触发。 我希望它能触发,因为我链接到页面中的锚点(http://tre-stage.wdogsystems.com:8000/faq/#does-the-sale-of-my-receivables-have-a – 我的信用报告上的负效应)我想在页面加载时出现侧边菜单,而不仅仅是当我启动滚动时。
如果您查看上面的页面,它就像我想要的那样工作。 但是,这只是因为我用$(window).load
重复了相同的function。 这对我来说似乎非常低效。 那么,有没有办法把两者连在一起?
例如:
$(window).scroll || $(window).load (function () ...
jQuery的.bind()
帮助方法允许一次绑定多个事件。
$(window).bind('scroll load', function() { // code here triggers for both, scroll & load events });
只是绑定在绑定中,如:
$(window).bind("scroll load", ...)
但是附加到滚动事件是非常糟糕的主意
一个非常好的解释为什么和一个伟大的解决方案: http : //ejohn.org/blog/learning-from-twitter/
像这样:
$(document).bind('ready load scroll', function() { ... });
为什么不在加载时触发窗口滚动事件? 你也可以命名你的滚动事件来隔离它,以后可以更好地访问它…
$(window) .on('scroll.myscroll', function () { // do something on scroll event }) .trigger('scroll.myscroll'); // trigger scroll event on pageload
但是如果你真的想在窗口加载时运行它(确保DOM完全加载,包括图像等),那么提到的其他例子都很好。 但是使用.on()方法,而不是.bind()。
$(window).on('scroll.myscroll load.myload', function () { // do something on scroll and load events });