我在网站上实现了stickyfloat(http://plugins.jquery.com/files/stickyfloat_0.htm)。它适用于一个问题。该功能会在$(window).scroll
上触发,而不会在$(window).load
上触发。我希望它能触发,因为我链接到页面中的锚点(http://tre-stage.wdogsystems.com:8000/faq/#does-the-sale-of-my-receivables-have-a - 我的信用报告上的负效应)我想在页面加载时显示侧边菜单,而不仅仅是当我启动滚动时。
如果您查看上面的页面,它就像我想要的那样工作。但是,这只是因为我用$(window).load
重复了相同的功能。这对我来说似乎非常低效。那么,有没有办法将两者联系在一起?
例如:
$(window).scroll || $(window).load (function () ...
答案 0 :(得分:2)
jQuery的.bind()
help 方法允许一次绑定多个事件。
$(window).bind('scroll load', function() {
// code here triggers for both, scroll & load events
});
答案 1 :(得分:2)
只需绑定绑定,如:
$(window).bind("scroll load", ...)
然而,附加滚动事件
是非常糟糕的主意一个非常好的解释为什么和一个很好的解决方案:http://ejohn.org/blog/learning-from-twitter/
答案 2 :(得分:1)
像这样:
$(document).bind('ready load scroll', function() { ... });
答案 3 :(得分:0)
为什么不在加载时触发窗口滚动事件?你也可以命名你的滚动事件以隔离它,以后可以更好地访问它......
$(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
});