无法重新绑定滚动事件?
我想在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')
。 小心递归。