我正在使用jqm构建一个新的应用程序。 所有的javascript都放在index.html中,在另一个页面上(cat.html)我使用无限滚动来显示类别中的帖子,当你滚动时,15个帖子之后它会加载15个以上的15个.... 访问cat.html页面并执行该功能后,所有其他页面上都会继续运行(仅在您访问cat.html之后)。
这是执行代码:
如何告诉其他页面不使用此代码?
$('#SaloonaMobileCatPage').live('pageshow', function(event)
{
$(window).bind('scrollstop', 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
});
}
});
答案 0 :(得分:2)
当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
获取当前页面的ID,并根据cat
页面的ID进行检查,以便if/then
语句中的代码仅在以下情况下运行:用户在cat
页面上。