2011-01-27 100 views
3

我已经在网站上实施了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

难道你不是指`$(document).ready`吗? – SLaks 2011-01-27 15:21:18

+0

请参阅John Resig的文章,了解为什么附加到滚动事件以及做什么,而不是:http://ejohn.org/blog/learning-from-twitter/ – bdukes 2011-01-27 15:25:18

回答

2

jQuery的.bind()help方法允许在一旦结合多个事件。

$(window).bind('scroll load', function() { 
    // code here triggers for both, scroll & load events 
}); 
1

像这样:

$(document).bind('ready load scroll', function() { ... }); 
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 
}); 
相关问题