无法重新绑定滚动事件?

我想在ajax调用中重新绑定窗口滚动事件

$(window).scroll(function(){ column_height = $("#first_column").height(); screenTop = $(window).scrollTop(); window_height = $(window).height(); if((screenTop+window_height)>=column_height){ $(window).unbind('scroll'); $.ajax({ url: "/service/article_json.php", type: 'GET', async: false, cache: false, timeout: 30000, error: function(){ return true; }, success: function(data){ $.each($.parseJSON(data), function(key,item) { //Add content to #first_column $(window).bind('scroll'); }); } }); } }); 

$(window).bind('scroll'); 似乎不起作用。

当你.unbind ,对绑定事件的引用不会存储在任何地方或任何地方。 $(window).bind('scroll')实际上什么也没做。

首先,如果你使用1.7你应该使用.on.on 。 没有大碍。

有几种方法可以做到这一点,但最简单的方法是单独定义函数并使用其名称绑定/取消绑定。 你甚至可以将它附加到窗口(虽然我认为只需使用function关键字就可以了。不管怎么说..)

 $(window).data('scrollEvent', function() { /* your func here */ }); $(window).on('scroll', $(window).data('scrollEvent')); 

您可以使用第二行替换上面的$(window).bind('scroll') 。 小心递归。