Когда событие pageshow
запускается для страницы cat
, вы можете связать обработчик события scrollstop
, а когда событие pagehide
запускается для страницы cat
, вы можете отсоединить обработчик события scrollstop
:
$(document).delegate('#SaloonaMobileCatPage', 'pageshow', function(event) {
$(window).bind('scrollstop.cat-page', function(){
if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)){
$.mobile.showPageLoadingMsg();
var id = getUrlVars()["catid"];
sf = sf + 15;
$.ajax({
type : "GET",
cache : false,
url : "http://saloona.co.il/mobile/mobile_xml/read_cats_xml.php?cat_id=" + id + "&start_from=" + sf,
dataType : "xml",
success : parseXmlCatsMore
});
}
});
}).delegate('#SaloonaMobileCatPage', 'pagehide', function () {
$(window).unbind('scrollstop.cat-page');
});
Обратите внимание, как я добавил пространство имен к типам событий, чтобы я мог добавлять / удалять только те обработчики событий, которые я хочу удалить.
Другой подход заключается в добавлении if/then
оператор для обработчика событий scrollstop
, который проверяет, является ли текущая страница страницей cat
:
$(document).delegate('#SaloonaMobileCatPage', 'pageshow', function(event) {
$(window).bind('scrollstop.cat-page', function(){
if ($.mobile.activePage[0].id == 'SaloonaMobileCatPage' && $(this).scrollTop() + $(this).height() >= ($(document).height() - 100)){
$.mobile.showPageLoadingMsg();
var id = getUrlVars()["catid"];
sf = sf + 15;
$.ajax({
type : "GET",
cache : false,
url : "http://saloona.co.il/mobile/mobile_xml/read_cats_xml.php?cat_id=" + id + "&start_from=" + sf,
dataType : "xml",
success : parseXmlCatsMore
});
}
});
});
Обратите внимание, как я получаю идентификатор текущей страницы с помощью $.mobile.activePage[0].id
и проверяю егос идентификатором страницы cat
, чтобы код в операторе if/then
запускался только в том случае, если пользователь находится на странице cat
.