Не можете перепривязать событие прокрутки?
Я хочу перепривязать событие прокрутки окна в вызове 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');
кажется не работает.
1 ответ
Когда ты .unbind
ссылка на связанное событие не сохраняется нигде и ничего. $(window).bind('scroll')
на самом деле ничего не делает.
Во-первых, если вы используете 1.7
ты должен использовать .on
а также .off
вместо. Не так уж и важно.
Есть несколько способов сделать это, но самый простой - просто определить функцию отдельно и использовать ее имя для привязки / отмены привязки. Вы даже можете прикрепить его к окну (хотя я думаю, что просто с помощью function
Ключевое слово делает это. Тем не мение..)
$(window).data('scrollEvent', function() { /* your func here */ });
$(window).on('scroll', $(window).data('scrollEvent'));
Вы можете использовать эту вторую строку для замены $(window).bind('scroll')
выше. Остерегайтесь рекурсии.